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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 2 [3] 4 5 ... 7
31  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 09, 2019, 15:13

Конкретно мне необходимо во время компиляции генерировать некоторые типы данных на основе других типов данных.
Интерфейс новых типов зависит от интерфейса базовых.

Что вы так сложно все объясняете. Сложность нужна когда человек погрузился.
Рефлексия  - moc в Qt


Также я бы предложил иметь возможность использования шаблонизации для квалификаторов и типов ссылок.
То есть, если имеется несколько методов

Код
C++ (Qt)
class X
{
   void method () &;
   void method () const &;
   void method () volatile &;
   void method () const volatile &;
   void method () &&;
   void method () const &&;
   void method () volatile &&;
   void method () const volatile &&;
};
 

с одинаковой реализацией, чтобы их можно было группировать в виде одного или нескольких методов, например,

Код
C++ (Qt)
class X
{
   void method () mutable, const &, volatile &&, const volatile; // как-нибудь так
   // или по-другому
};
 


Та елки палки. Что это такое?
Так же с ума можно сойти.
Я вообще ничего не понял.

То один this на null проверяет, второй пишет    
 void method () &&;

Либо я тупой, либо разверните каждую функцию. Извините, но язык программирования важен в деталях.
И если у вас столько функций, а вы хотите! всего лишь превратить их в одну, зачем их столько писать?
Ведь смысл в каждой это оптимизация? Да и, как писалось выше, const это декларативная вещь, типа как private в классе, редко влияет на оптимизацию.
32  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 09, 2019, 00:28
Какой то злой вы.
Ну, то что вы не Линус Товардс нам понятно Улыбающийся

Мизантроп, среди вас есть мизантроп?  
Да, я мизантроп. Что случилось?
Здесь человеку плохо. Наслаждайтесь!

Ну только норкоман будет прелагать полечить "старый компилятор" введением фичи в новый стандарт.
Примерно похожая фича, кстати, обсуждается - constexpr!
Не очень, правда, ясно, как фича из 20го\23го стандарта решит проблему древнего msvc2015...

Ну про древний 2015.... Вы уж погорячились. Как правило проекты не преходят на новый компилятор с его выпуском, а срок выпуска (жизни) некоторых проектов (саппорт и т.д.)- это минимум 5 лет. Не будем приводить примеры. Не совсем корректно требовать от компилятора поддержу новых фитч, которы позже его вышли, это да. Но МС добавляет их даже для старых компиляторов при обновлении. Это на своем опыте.

Возьмем Линукс.
Based on Qt 5.13.2 (GCC 5.3.1 20160406 (Red Hat 5.3.1-6), 64 bit- QtCreator (установка с сайта Qt)
gcc version 9.2.0 (Gentoo 9.2.0-r2 p3)  - система.
Разница обалдеть, не правда?

Да вспомните VS 6, сколько она держалась, когда С++ "похоронили"! Лет 5-7 точно (в плане С++)

Неужели вам, взрослому человеку не понятно, что С++ позволяет всем жить довольно успешно в собственном мире, не пересекаясь с другими?

Это не я умный, это все остальный тупые Улыбающийся

Какой критерий успеха? Знания?
Для меня Александреску вреден, кому то икона. Особенно подосрал, когда сказал что всё фигня и ушёл в D со сборщиком мусора.

Какой? Деньги?
Тогда Бил Гейц молодец, а Линус Товардс лошара полная.

У вас свой критерий. Но если, вы, как то можете именно в С++ сказать:
Критерий - это знания языка по максимуму - вас засмеют. Поэтому не скажете.

Ну, тут вот скажу что не приемлемо.
Утверждать однозначно что-либо, что сам не проверил и не уверен в этом на 100%
Многие грешат. Это не приемлимо.

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

Трагичнее куда гораздо больше, когда дурак выдает себя за умного. (Это не про вас и кого либо на форуме). В остальном все ерунда.

Так что Авварон выдыхайте и приносите знания конкретно, а не все дебилы.
Иначе, по вашим сообщениям, вы приходите в детский сад, чтобы утвердиться.
33  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 09, 2019, 00:15
Я понял, _Bers таки норкоман и не в курсе ....

Какой то злой вы.
Ну, то что вы не Линус Товардс нам понятно Улыбающийся

Мизантроп, среди вас есть мизантроп?  
Да, я мизантроп. Что случилось?
Здесь человеку плохо. Наслаждайтесь!
34  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 07, 2019, 23:35
а вот cl (компилятор visual studio),
или просто более старые компиляторы не умеют циклы в constexpr функциях.
например, компилятор msvc2015 считается достаточно современным.

Мммм.....
Гм......
Не могу описать ощущения....
И даже не могу представить, почему это так принципиально для вас.

Но, всё таки, вы знаете что оно прийдёт, чуть попозже, но прийдёт.

Но, в свете вашего ответа, довольно развернутого и понятного, попрошу ещё и пункт 5 развенуть.
Боюсь я его тоже не правильно понял "из коробки"
35  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Декабрь 07, 2019, 14:29
Вот если бы у вас была возможность внести новую фитчу в язык с++, какую бы вы предложили?

1.
рефлексия, которую обещать обещали,
да так и не завезли.

2.
перегрузку для функций,
которые исполняются времени компиляции,
и времени выполнения.

3.
проверялка компилябельности кода с человеческим лицом.

в настоящий момент подобные проверки делаются через SFINAE.
код получается довольно таки замороченный.

4.
возможность при компиляции вывести человеко-читабельную диагностику,
почему шаблонно-перегрузка выбыла из конкурса.

5.
шаблонно-виртуальные функции-члены.


Со знанием дела....
Но вы говорите больше про удобство, чем про революцию.
Разве что кроме пункта 2.

Не могли бы вы его развернуть?
36  Разное / Говорилка / c++ новый стандарт (комитет) : Декабрь 05, 2019, 19:51
Побудоражу сообщество.

У меня когда раздумье, переключаюсь на другие задачи. Сейчас выпал форум.

Вот если бы у вас была возможность внести новую фитчу в язык с++, какую бы вы предложили?

Без глубинного анализа!

Я бы запулил: "Запрет на разыменование const", const - всегда const, ничего не может его сделать другим. Ну, и понятно, mutable заодно грохнется.

Опять же, поймите иронию, не надо говорить про совместимость и бла, бла, бла....
Как по щучему веленью. Просто на уровне желаний без последствий.

37  Разное / Говорилка / Re: C++ ping : Декабрь 03, 2019, 10:33
Не. Пинг нужен универсальный, а не только для unix



Тут вообще интересно. Чего оно в екземпле валяется, причем долго....
Ну для пинга тянуть boost_asio конечно не хочется, но как вариант.... Тяжелое получается все.

насколько я помню - для icmp нужен сырой сокет и без рута (или win админа) юзер его не имеет
см. https://stackoverflow.com/questions/1189389/python-non-privileged-icmp

Ну тут вообще интересно.
Ну,  я думаю, находясь на форуме по программированию, вам таки приходилось запускать пинг не под админом.  

Ах ты .... воробушки.
Таки да, пинг таки имеет setuid.
Может его нету (ping) - т.к. кто захочет пользоватся программой, которой нужны права запуска от root. Проще запустить "свой родной, проверенный системный пинг".

Ну вот, вопрос превратился из технического в политический и становится нерешаемый.........    Используем внешний пинг.
38  Разное / Говорилка / C++ ping : Декабрь 02, 2019, 20:51
Не знаю как вы, а я точно живу матрице.

Ну всё есть. И нейройнные сети, и использование тучу потоков .......... Продолжите что хотите.

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

Это треш.......
39  Разное / Говорилка / Re: c vs c++ : Ноябрь 11, 2019, 16:28
Си настолько стрёмный язык, ну вообще, что люд на нём так аккуратно пишет чтобы не накосячить - загляденье, а не код.
Все верно, "простыня" и "плевать" (из Вашего предыдущего поста) не покатят, быстро захлебнетесь в собственном коде. Не стали бы Вы копипастить отработку ошибки 57 раз, придумали бы как обобщить. Др словами ограниченность (пусть даже "убогость") средств дисциплинирует. А вот на плюсах, увы, этого не происходит. Зачем что-то придумывать?  Лучше чего то скоммуниздить (gsl::not_null), или, конечно, exception (который может и к месту, но может и нет).

Старый юмор

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

Воспринимайте мой первоначальный пост следующим образом:
Как хорошо когда жена уехала, наконец то можно носки разбрасывать где хочу.
40  Разное / Говорилка / Re: c vs c++ : Ноябрь 11, 2019, 16:01
Цитировать
"С" не любят потому что он резко ограничивает возможности говнокодинга, все должно быть сделано аккуратно и скрупулезно.
Чо?Непонимающий Да C разрешает все, что угодно. Поэтому и говнокодинга на нем в разы больше, чем на плюсах.

Тут я думаю Igors имел в виду другое.
Попытаюсь сказать за него, но могу ошибаться, он поправит:

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

Хех. Но на практике это не так Улыбающийся Видно когда бородатые дядьки на нем начинали кодить, инета особенно не было, жене не интересно вот и колбасили как хотели, а культура прижилась.
41  Разное / Говорилка / Re: c vs c++ : Ноябрь 11, 2019, 15:54
А где же "благодать" что Вы говорили в стартовом посте? Улыбающийся

Так это и есть благодать! Какое там, ты среди этого бреда незадумываясь копипастишь все подряд, плевать как выглядит, плевать что превращается в простыню, плевать что никто в здравом уме никто с этим не разберется. Нужно, выдергнем из мусора что нужно.

Ну ладно, берем открывам любой исходник С++ и рядом С. Смотрим.

Как для вас не знаю, у меня кодинг по мере роста проекта начинает замедлятся в експотенциальной прогрессии . Больше начинает тянуть "архитектура" - от выбора контейнера и именами, заканчивая компоновкой класса.

42  Разное / Говорилка / Re: c vs c++ : Ноябрь 10, 2019, 23:42
В C API считается хорошим тоном проверять все указатели на null. Как достичь того же на плюсах? Просто сравнение this нехорошо, о чем шланг и говорит.

Да в том же Си есть фунции с суффиксом s (secure), которые делают доп проверки "на взлом". Хош вызывай небезопасную, хош безопасную. Это я к чему  - если вы уже точно знаете, что ваши данные валидны, зачем каждый раз вызывать s.

Если брать аналогию с C++, то тут даже проще. Половину ресурсов вы можете создать в конструкторе (нужном инициализваторе) и больше внутри класса не парится на проверку. Либо (для примера) pimp, где приватный класс точно знает, что все данные у него валидны - проверка во внешнем классе. (опять же, это как пример).

Так что я думаю тут плюсы выигрывают в плане проверок и краткости кода.
Да в конце концов можно использовать отложенную инициализацию.
И проверка if превращается в getPointer, где поинтер возвращает обертку над данными, которая всегда валидна для использования, даже если данных нет.

Или глобально в классе, isValid...
Какие то у вас не транзитивные классы. Ну очень. Я не знаю, что это означает, но звучит круто.

Классический вызов функции Си:

Код:
hw = someOperation(d,&e)

if (!hw)
   return;

if (hw == someErr) {
   printErr(sfsfdsfsfd);
   someOperationFree(e);
   return;
}

ещё 57 проверок
типа......

if (hw == someErr) {
   printErr(sfsfdsfsfd);
   someOperationFree(e);
   return;
}  

Код

и в конце
someOperationFree(e);

Даже определение std::unique_ptr(e,someOperationFree) очень упрощает этот сишный код
43  Разное / Говорилка / Re: c vs c++ : Ноябрь 10, 2019, 19:42
Azazello, понятнее-то не стало. Я тоже НХНП. Веселый

Ну хорошо.
Митинг/оперативка/собрание.
Руководитель: написать ауторанер для DVD. Типа инстал что-то, красивые обои.
И тут встаёт чел: Предлагаю использовать самые передовые технологии! Будем писать на С+17 с использование последних фитч!
Все остальные ( в мыслях): Ну дебил, митинг затягивает, дадим Коляну, он за сегодня напишет.

Вариант 2:
Митинг/оперативка/собрание.
Руководитель: мы сегодня будем разрабатывать новую БД, которая порвёт рынок!
И тут встаёт чел: Предлагаю использовать самые передовые технологии! Создадим свой менеджер памяти и файловой системой!
Все остальные ( в мыслях): Ну блин попали, о чём он?

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

Да блин, что тут объяснять: когда начинаем строить дом, нефиг цвет занавесок обсжудать.
Когда дом построили и выбираем занавески, нефиг фундамент обсуждать.
44  Разное / Говорилка / Re: c vs c++ : Ноябрь 10, 2019, 17:33

Эхехех
Как то так:
1-й класс: 3-5 - задача не имеет решение.
4-й класс: 3-5 равное -2.

Суть не в том, что кто-то лучше знает, кто-то хуже, просто на каких-то эпатах нужно рассуждать на "нужном уровне".
Вам же не кажется глупым выражением: "Солнце встало".

Та этож бред! Земля вращается вокруг солнца, оно не может встать.

Сомневаюсь, что вы будете выносить мозги своим родным, доказывая что это утверждении не верно.

НО!!!!!!!!!!! Видео мне пондравилось.
45  Разное / Говорилка / Re: c vs c++ : Ноябрь 10, 2019, 17:17

Проверять имеет смысл только когда выделяются какие-то большие буфера, если после пары гигов нет памяти на инт, то ничего не поделать, придется упасть с std::bad_alloc.
В этих случаях можно обойтись маллоком и проверить по-старинке.
В остальных 99% случаев просто забить.
На самом деле, в том же Линуксе маллок никогда не вернет nullptr и new не тровнет, там по умолчанию включен memory overcommitment. То есть программу убьют когда вы попытаетесь в эту память записать, а не на выделении.
Вывод - ловить нехватку памяти надо только там где это можно нормально обработать, в остальных случаях - забить.

Вопрос к уровню рассуждений. На каком мы уровне?
Можно рассуждать о скорости: v = расстояние/на время. В квантовой теории формула преображается.

Большой проект с выделением огромного кол-ва памяти? Совершенно другой подход, который мы здесь не  обсуждаем. В конкретном случаем мы не Oracle DB пишем. Хотя, возможно, есть здесь люди, которым надо большие объемы. Там сразу идёт по дефолту "менеджер памяти" свой и в этих рассуждениях они не участвуют. Аля пул потоков или аля стек. Не знаю как правильно аналогию провести.

Ну кто здесь парится про стек, который занимает 2 метра. Любое падение в стеке- ошибка рекурсии.

Это я к чему, Авварон. Надо на одном уровне находится, хотите другой - либо его красиво поднимайте в новой теме, либо.... Ну, не знаю как.


Страниц: 1 2 [3] 4 5 ... 7

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