Russian Qt Forum
Май 06, 2024, 08:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 [2] 3 4 ... 7
16  Разное / Говорилка / Re: Абстрактное мЫшление : Декабрь 18, 2019, 19:45
А это вообще неверно. "Чистого программирования" не существует в природе, если оно не связано с предметной частью, то ценность любых познаний в языке быстро падает до нуля.

Это не соответствует принятым соглашениям в обществе.
У общества принято негласно соглашение - если ты находишься на каком-то уровне, то подуровни тебе известны. Так мы можем дойти, что человек умеет программировать, но не знает как сесть на унитаз. Чистое программирование существует в природе. Например git. Но я расширю ваш список. Если вы разрабатываете бухгалтерскую программу, вы обязаны вникнуть в предметную область. Но это невозможно всецело. Поэтому всегда существуют "посредники", которые из бухгалтерских терминов переведут в абстрактные. Но если уж брать чистый пример - вы могли бы разработать домашнюю бухгалтерию? Да запросто. Никуда вы в никакие другие области не вникали-бы.

Цитировать
А я совсем не филантроп, напротив - довольно жадный Улыбающийся И ничего бесплатно писать не собираюсь

Внутренне противоречие. Начали говорить - нужна культура программирования (творчесва), закончили  - мне нужно бабло.

Цитировать
Ну если Авварон не против это обсуждать - то какие же "все критерии" Вы увидели?  Улыбающийся

Я немного не так выразился. Правильней было бы сказать - он готовый руководитель проектов.

Критерии +:
   Не пиздит, приводит направление решений, которые работают.
   Признает ошибки.
   Не многословен. Это + плюс для руководителя, меньше сказал, меньше фейлов.
   Мизантроп. Как ни странно, это плюс для руководителя - задавит авторитетом знаний и получишь неодобрительный взляд, почуствовав себя ничтожеством. Чтобы работать, работать.....
   Пашет аки конь, и подчиненные испытывали бы чуство вины, когда что-то проигнорировали.
   
Критирии -:
   Не умеет объяснять. Сыпанье терминами, которые придуманы тобой, вызывает   недоумение, а не поддержку подчиненными.

 
Тут смотрите. Я вам про лидерство. По факту он лидер, по форуму посмотрите, вы же даже с ним не спорите. Так, сцикливо только. Он может не быть реальным руководителем, тогда менее проф чел, который начальника, ставит на него и у них симбиоз: мне не нужны митинги, а тебе не нужно управлять реально проектом.

Это мое ощущение. Насколько оно соответсвует действительности - я не знаю. Может он вообще уже 5 лет пишет для детсада тетрис.
17  Разное / Говорилка / Re: Абстрактное мЫшление : Декабрь 17, 2019, 21:21
Да, и никто из нас/критиков перейти по шесту не смог бы, тем более с полной кружкой. А он запросто.

Та я тоже не могу летать как комар, который меня кусает......
 
Проблематика заключается в том, что вы пытаетесь под свое гребёнку подвести всех, и "разбудить" этих же всех.  Поймите иронию, что "всех"и "пытаетесь".

Ваша ошибка заключается в следующем - ваш внутренний богатый мир не уникален. Вы ничего не прозрели. Ключевое - ВЫ НЕ ПРОЗРЕЛИ. Ни от окружающей вас "серости" ни от продвинутой "серости".

Расскажу про себя:
Я не профессионал в С++. Для меня профессионал - это тот, у которого это основной доход. У меня он не базируется на этом. А это есть основной критерий (профессионализма). Если вы, по своей наивности думаете, что профессионал это тот человек, который хорошо владеет своими знаниями - вы ошибаетесь.

Igors, вы мне импонируете как человек, но иногда я не понимаю вас.
Одна только фраза: функция у которой 14 параметров..... (ну там у вас дальше как вы с ней хорошо справляетесь)

Это типа void doThis(char* PWchar, ....................................................)
Да мне даже лень её писать. Какая функция на 14 параметров, этож звездануться, ты просто её будешь перелистовать, просто забывая с чего начал. Доставать бумажку, что-то записывать, думать.... АГА. Вместо того, чтобы програмить.

Я к чему.

Та ну. Найдите (Igors) свою нишу, для себя, ни для кого другого.
Напишите OpenSource проект, который кому-то нужен и вам понятен.
По барабану на всё остальное.

Вот возьмём Авварона. По всем критериям руководитель проектов.
Проблема в том (для кого, Гм?), что не хочет "расти" до архитектора. Хочет всё контроллировать. Мне это не сложно вычислить по "реперным точкам", сам был "руководителем".

Почему привожу пример именно Авварона - редкие фейлы его заявлений.

Это  есть +: уволят - пойдут кодить (старый).
Это есть - : зачем нам кодер, нам руководители нужны (авторитет).

А все сводится только к одному: сад с вишеньками и вид на озеро с уточками.


18  Разное / Говорилка / Re: Абстрактное мЫшление : Декабрь 16, 2019, 20:44
Цитировать
протаренным путями
Симпатичная описочка Улыбающийся Позволите взять в коллекцию?

Я так смотрю, тут ещё тот коллективчик.  С++ психоаналитики.

Ай Авварон, так ты тут один не в теме оказывается......

А вообще это не очепятка, это моя синтаксическая ошибка. Не все же со спелчеком пишут.
19  Разное / Говорилка / Re: Абстрактное мЫшление : Декабрь 16, 2019, 19:45
Потому что у него нет общего понятия «вода».

Экспериментатор не обучил обезьяну этому понятию, а ей оно и не надо т.к. живет по принципу "пей кокосы ешь бананы" )


Вы вообще не вкурили, что имеет в виду Igors. А его потянуло на философию с элементами душевного стрептиза и вы начинаете в нем участвовать.

И Igors, делая опросник, думая что-то то прояснит для себя (заодно найдя единомышленников)

Ну, расскажу за него:

Вот раньше, когда зимы были снежными,  а наши родители помнили, как писать чернильными ручками с промокашками все было основательно.  Ну вообще всё. Не было ваших интернетов и человек вдумывался и в смысл жизни и творчески начинал подходить ко всему. С душой так сказать.

А что же сейчас предлагаете нам вы! (Вы, это те, кто более успешный или другое поколение) - следование протаренным путями, не задумываясь о творчестве, о качестве продукта, так сказать. Вы как те обизянки, следуете вслепую навязаным вам путём, не задумываюсь о высокой цели оптимизации С++ программ, не видя за деревьями лес. Ремесленники - тьфю на вас.


Короче, Igors, хоть это и курилка, но жопа какой перебор.

Назвалы бы тему так: Проверенные решение vs творческий подход. Когда и как.
20  Разное / Говорилка / Re: Абстрактное мЫшление : Декабрь 16, 2019, 17:08
Добрый день

В детстве (до 10 лет) ......

Понимаете, Igors, вы подняли более серьёзный вопрос, чем ваша обизянка.

А заключается он вот в чём: Вляпаться в этот душевный стриптиз или нет.
21  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 11, 2019, 22:28
Кстати, ssoft, отдельная благодарность за отзывчивость и понятность ваших объяснений. А также за труд, когда вы писали исходники.

И Igors, за отзывчивость и желание помогать.

Но господи! Перестаньте писать, в том, в чем вы не уверены!
Я думаю, что ответ на stackoverflow вы бы писали с тщательность в 10 раз больше.

Хорошо. Я уж вас точно не лечу, я вас подначиваю Улыбающийся

22  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 11, 2019, 21:46
Академичности ради, пример с void и реф-реф, действительно, плохой.

"Обычная" void функция обычно имеет сайд-эффект в том, что она меняет сам объект (например, void std::vector<T>::clear()). Иные сайд эффекты (как то изменение глобальных объектов) - это фу-фу-фу и всеми (справедливо) ругается.

В случае с void foo() && у функции (почти) нет никаких вариантов, кроме как изменить глобальный стейт (запись в лог - это пример такого изменения). Ведь делать что-то с объектом бессмысленно - он вот сейчас будет разрушен и никому (уже) не нужен. А изменение глобального стейта это фу-фу-фу и неакадемично.

От блядь. Ну понимашь, вылез в конце.
Я уже гармонию со всеми нашёл, а вы по второму кругу Улыбающийся

Ну так привидите пример, когда void && имеет смысл хоть какой. Я тему закрывал, что-бы холивар закрыть. А вы так ХРЯСЬ.

Академичность бывает разная, в зависимоти от курса, уровня заведения и т.д.
В одном случае рассказываем что от 3-5 не имеет смысла, в другом, что получится -2.

НО!, логгирование это и есть смысл глобальной переменной. Уж извените, вы не подумав сказали. QSettings вам в пример. У нас так всегда, начали за упокой, закончили глобальными переменными.
23  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 11, 2019, 21:00
Я уже вот тоже думаю, чего это я так прицепился, ну есть, то есть. Значит кому то нужно.
Хочу закрыть тему.

Часто использую академический С++, где важен сам пример и принцип, поэтому такое внимание к деталям - это к чему: типа чего приципился.

Нашел академическое применение данного метода.

Код:
class Logging {

bool connectToLogServer();
bool isConnected();

void logging(std::string& msg) { if (!isConnected()) return; std::cout << msg; }
void logging(std::string& msg) && { connectToLogServer(); std::cout << msg; }

}

Использование понятно - создав объект постоянным, мы экономим ресурсы на подсоединения к серверу, раз подсоединившись и пуляя сообщения.

Код:
{
    Logging log;
    log.connectToLogServer();

    log.logging("sfsfds");
    log.logging("sfsfds2");

}

Когда же нам нужно "здесь и сейчас", мы вызываем "временную функцию".

Код:
Logging().logging("sfsfds");

Почему же оно академическое? Мы не знаем, записало оно или нет. Но думаю есть  случаи где это не важно (на то он и лог, в какой лог писать, что лог не работает), а во вторых есть исключения (exception).

Конечно, мы можем усовершенствовать данный класс, проверяя каждый раз наличие соединения, и если его нет, устанавливать.

Код:
void logging(std::string& msg) 
{
     if (!isConnected())
             connectToLogServer();
     if (!isConnected())
          return;

      std::cout << msg;
 }

 И тогда выгода только в краткости синтаксиса. Но пропустим это Улыбающийся

Короче, хочет чел делать без возврата, та и пусть делает, видно для него это имеет смысл. Для меня не приобрел.

А сдругой стороны, кому в этом мире помешала проверка this на null? Да никому.

24  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 11, 2019, 09:54
Запрет использования методов, если объект не является rvalue

Ладно, будем считать что убедили.
Подправте мои выводы:

Вызов метода без возращаемого значения (void method() &&) может оптимизировать код (не понятно как, но что-то связано с расположеним объекта). Также в зависимости от архитектуры вашего класса, вы можете разрешить использование некоторых функций только для временных объектов. Накладывая такое ограничение,  вы даете понять ....... Ну, что то да даете понять Улыбающийся
25  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 10, 2019, 19:30

Например, можно логи писать, с внутренними данными что-то делать. Не обязательно же что-то возвращать.

Так смысл в том, чтобы понять, где можно получить оптимизацию от вызовов:

void method()

и void method() &&.

Где, вызывая я один перегруженный метод, получу выгоду от вызова другого в разных условиях?
Ну хоть как то намекните.

Хочу заметить, тему я начал с хотелок конечно, но желание было чтобы компилятор хотя-бы const вызовы оптимизировал.

Я наверное неясно изъясняюсь. Но стремлюсь!

Вон Авваррон какие простыни пишет, никто с ним не спорит. Наверное думает, что что-то умное сказал, и все согласились.
На самом деле просто никто ничего не понял.

Ну или Igors - ну понятно! Ну, вам понятно, помогите  мне понять.

Тут же R/W пользователей с десяток, не больше. О чем общаться? Все в исходниках. Все всё прошли. Но какое желание держать лицо. Та давайте опустимся чуть ниже, все же фигню иногда делают. Все чего-то недопонимают. Но только попытка объяснить что либо вскрывает многие свои пробелы.

К примеру, я тоже доказывал что private virtual функция не имеет никакого смысла, думал - БОЖЕ, ЭТОЖЕ ОСНОВЫ.
Ну, правда, до сих пор смысла не понимаю, зачем они так сделали, но таки она работает, успешно компилируется и благодаря Маерсу (запретил бы его, как и Александреску) часто используется.

26  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 10, 2019, 17:53
Например, хочется чтобы экземпляр объекта был обязательно распределен где-то в памяти (стек или куча) перед тем, как будет вызван какой-либо его метод (кроме конструктора), помечаем методы &. Что это дает? Экземпляр такого объекта обязательно имеет адрес в памяти. В отличие, например, от временного объекта, который вполне может быть распределен в регистрах процессора. Методы && предполагают обратные ограничения (экземпляр такого объекта не обязательно имеет адрес в памяти). И ничего больше.
Теперь понял, спасибо.

Что тут понятного, тут вообще ничего понятного нету.

Цитата: ssoft
   Например, хочется чтобы экземпляр объекта был обязательно распределен где-то в памяти (стек или куча) перед тем, как будет вызван какой-либо его метод помечаем методы &.

Ага, а если не пометить, то экземпляр объекта не будет обязательно распределен в памяти?

Т.е. если я напишу Test t, то что, распределение объекта в памяти зависит от наличия & для метода? Какая ерунда. Я следую инструкции написаной вами выше, и просто продолжаю размышления (отнесём к неясности выражения мысли). Возможно вы имеете в виду такую временность, Test().funct() &&? Что тоже ерунда, т.к. вы утрверждаете что this внутри этого объекта может не существать (цитата: т.к. экземпляр такого объекта не обязательно имеет адрес в памяти). Размазан по регистрам? По каким правилам?  

Пока что для меня void T::method() && таки до сих пор не имеет смысла.

Ну как не имеет. Если брать что-то наподобии "чтобы было", когда нам нужно не задумываться и использовать единый подход, даже если это не имеет особого смысла.

Я тоже часто пишу "чтобы было"
Код:
   class {
 
   const T& value() const   { return ...}
   T value() { return .. }
}

Заметте, для компилятора вызов этих методов одинаков. Я то  на уровне программиста оптимизировал тип возвращаемого значения на ссылку, тем самым предотвратив копирование, надеясь, что это ограничит клиентов этого метода на уровне соглашения - не надо делать const_cast. Отвечаешь за последствия ты. Но компилятор то уж точно здесь ни при чем.

В вашем же случае я вообще не могу ничего оптимизировать. Это просто дублирование кода.

Никаких отличий для компилятора, как бы эти функции не были помечены  - & или && или просто классическая не имеют. Это просто перегрузка. Просто дополнительные квалификаторы. Реализация "временного объекта" берет на себя программист. И вызов std::move лишь вызовет соответствующум функцию, а она может просто копировать. Все.

Пока буду считать так, если мне никто не ткнет обратное.
Вообще путаница конечно.
Термин временный объект подразумевает, что вы его будете куда то передавать, этож не технология компилятора, это просто принятые соглашения разработки, жить то он может вечно Улыбающийся

Как и термина "глобальная переменная" не существуют для компилятора (как и локальная), хотя все мы этим термином успешно пользуемся.
Хотя существует понятие стековой и переменной в куче (для компилятора).

Это я к чему эту дребень развел? Чтобы понять, на каком уровне мы находимся? На уровене компилятора? Для него нет оптимизации фунций с его точки зрения (& или && или const  в отличии от noexcept, finnaly....). Если на уровне программиста, то есть.
27  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 09, 2019, 17:31
Прочитал. И что куда перемещается? Без шуток.
 void method () &&;

В чем смысл void? что куда он перемещает?

Здесь нет никакого перемещения. Просто описывается интерфейс для rvalue ссылки

Код
C++ (Qt)
 
struct Type
{
   void method () && { ::std::cout << "Hello rvalue method " << ::std::endl; }
};
 
void main ()
{
   Type().method(); // ОК
 
   Type value;
   value.method(); // ERROR
   ::std::move( value ).method(); // OK
}
 

Что Ок.
В том то и дело, что это бессмысленно. Не смыслва в void method() &&. Он по фунционалу ничем не будет отличаться от void method().  Такие вещи, демонстрирующие, что что-то компилируется, но не объясняющие суть, просто введут в ступор человека ,не знакомым с данной технологией. Многие побоятся спросить (чтобы не показаться глупыми), будут читать выше наведенные документации, где тоже std::cout << "Hello rvalue method " << ::std::endl; Честно, меня ввело в ступор - все говорят что нужно, но не говорят зачем. Затем дают заднюю....

Может где то это конструкция и нужна теоретически, но вы же не объяснили в чем смысл void method() &&

Как по мне, ваш пример для понимания "должен" выглядеть так.

Код:
class Test {
public:
    Test(): mData(100,100) {}

    std::vector<int> clear() &&  { return std::move(mData); }

private:
    std::vector<int> mData;
};

int main() {
    Test t;
    std::vector<int> r = std::move(t).clear(); //move data
}

Поэтому для меня многие описанные выше методы не имеют смысла и начинаешь задуматся не о теме разговора, а о том, что "что то упустил". Откуда я знаю, приводите вы реальные вещи или "а это для примера". Вон Igors для примера this c null сравнивал, так заклевали Улыбающийся

Код:
template < typename ... _Arguments,  typename = ::std::enable_if_t< подходящий метод для _Type существует > >
    decltype(auto) begin ( _Arguments && ... arguments ) & { /*additional code*/; return static_cast< Type & >( m_type ).begin( ::std::forward< _Arguments && >( arguments ) ... ); }

Какое все вырвиглазное.............................
Но смысл понятен.

 

28  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 09, 2019, 16:58
void method () &&;

Тогда уж я точно не понимаю. Объсните что-куда перемещается.

ref-qualified member functions.


Прочитал. И что куда перемещается? Без шуток.
 void method () &&;

В чем смысл void? что куда он перемещает?
29  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 09, 2019, 16:39

 void method () &&;


Тогда уж я точно не понимаю. Объсните что-куда перемещается.
30  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 09, 2019, 15:38
Скажем, вместо пары итераторов binary_search будет принимать "RandomAccessContainer" (ну или какие там требования нужны).
По сути, синтаксический сахар для SFINAE, но открывает кучу всяких возможностей (типа std::sort НАКОНЕЦ-ТО будет принимать один параметр, а не два).

Ну да, ну да.....
Два параметра передавать жопа полная. Тут согласен. Я бы вообще психанул и им не пользовался. Но самое прикольное от НАКОНЕЦ ТО. Улыбающийся)))) Ту уж позвольте над вами поиздеваться Улыбающийся

Хех. На своем опыте мне никогда не приходилось сортировать контейнер не полностью, но с чего бы терять универсальность, даже если это 0.1% пользователей?
Страниц: 1 [2] 3 4 ... 7

Страница сгенерирована за 0.127 секунд. Запросов: 23.