The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Утверждён стандарт C++20

07.09.2020 08:21

Комитет ISO по стандартизации языка C++ утвердил международный стандарт "C++20". Представленные в спецификации возможности, за исключением единичных случаев, поддерживаются в компиляторах GCC, Clang и Microsoft Visual C++. Поддерживающие C++20 стандартные библиотеки реализованы в рамках проекта Boost.

В следующие два месяца утверждённая спецификация будет находиться на стадии подготовки документа к публикации, на которой будет проведена работа по редакторской правке орфографических ошибок и опечаток. В начале ноября результирующий вариант документа будет направлен в ISO для публикации под формальным именем ISO/IEC 14882:2020. Тем временем, комитет уже приступил к работе над следующим стандартом C++23 (C++2b) и на ближайшем виртуальном совещании рассмотрит возможные новшества.

Основные особенности C++20 (примеры кода):

  • Добавлены "концепции", расширения шаблонов, позволяющие определить набор требований к параметрам шаблона, которые во время компиляции ограничивают набор аргументов, которые могут приниматься в качестве параметров шаблона. Концепции можно применять для того, чтобы избежать логических несоответствий между свойствами типов данных, используемых внутри шаблона, и свойствами типов данных входных параметров.
    
       template<typename T>
       concept EqualityComparable = requires(T a, T b) {
           { a == b } -> std::boolean;
           { a != b } -> std::boolean;
       };
    
    
  • В состав приняты расширения для работы с модулями, которые можно использовать вместо заголовочных файлов. Модули предоставляют новый способ организации исходных текстов на основании определения границ компонентов, без подключаемых через "#include" заголовочных файлов.
  • Макрос __VA_OPT__ для адаптивного раскрытия вариативных макросов в зависимости от наличия токенов в вариативном аргументе.
  • Поддержка оператора "<=>" для трехстороннего сравнения.
  • Поддержка инициализаторов элементов по умолчанию для битовых полей.
  • Возможность лямбда-захвата выражений "*this".
    
       struct int_value {
         int n = 0;
         auto getter_fn() {
           // BAD:
           // return [=]() { return n; };
    
           // GOOD:
           return [=, *this]() { return n; };
         }
       };
    
  • Вызов элементов по указателю (Pointer-to-member), используя определённые через выражение "const &" указатели на временные объекты.
  • Оператор delete с деструктором, описанный в документе P0722R1.
  • Классам разрешено использование параметров шаблона без типа.
    
       struct foo {
         foo() = default;
         constexpr foo(int) {}
       };
    
       template <foo f>
       auto get_foo() {
         return f;  
       }
    
       get_foo(); // uses implicit constructor
       get_foo<foo{123}>();
    
  • Не сохраняемые лямбда-выражения с конструктором.
  • Допустимость использования синтаксиса шаблонов для ламбда-выражений ("auto f = []<typename T>(std::vector<T> v)").
  • Возможность использования строковых литералов в параметрах шаблона.
  • Поддержка синтаксиса инициализации в стиле Си - явно не перечисленные в списке инициализации поля, инициализируются по умолчанию.
    
       struct A {
         int x;
         int y;
         int z = 123;
       };
    
       A a {.x = 1, .z = 2}; // a.x == 1, a.y == 0, a.z == 2
    
  • Поддержка пустых членов структур данных.
  • Поддержка атрибутов likely и unlikely для информирования оптимизатора о вероятности срабатывания условной конструкции ("[[likely]] if (random > 0) {").
  • Возможность использования диапазонов для инициализации значений переменной в цикле "for"
    
       for (auto v = std::vector{1, 2, 3}; auto& e : v) {
    
  • Автоматическое вычисление размера массива в new ("new double[]{1,2,3}");
  • Атрибут "[[no_unique_address]]" при котором переменные без данных не занимают места.
  • Атомарные указатели (std::atomic<shared_ptr<T>> и std::atomic<weak_ptr<T>>).
  • Возможность вызова виртуальных функций в условных выражениях.
  • Поддержка быстрых (immediate) функций, которые могут работать только с константами.
    
    
       consteval int sqr(int n) {
         return n * n;
       }
    
       constexpr int r = sqr(100); // OK
       int x = 100;
       int r2 = sqr(x); // ERROR:  'x' не может использоваться как константа
      
    
  • Возможность применения constexpr с виртуальными функциями ("constexpr virtual int f() const { return 2; }").
  • В стандартной библиотеке:
    • Добавлена поддержка типа char8_t для строк UTF-8.
    • Добавлены заголовочные файлы bit (битовые операции) и version.
    • Появилась возможность проверки префикса и суффикса строк (starts_with, ends_with).
    • Добавлены типажи std::remove_cvref, std::unwrap_reference, std::unwrap_decay_ref, std::is_nothrow_convertible и std::type_identity.
    • Добавлены функции std::midpoint, std::lerp, std::bind_front, std::source_location, std::visit, std::is_constant_evaluated и std::assume_aligned.
    • В std::make_shared добавлена поддержка массивов.
    • Добавлена функция std::to_array для преобразования похожих на массив объектов в std::array.
    • В состав включена библиотека std::ranges, позволяющая использовать итераторы над группой элементов.
  • Более удобный синтаксис перечислений:
    
       enum class rgba_color_channel { red, green, blue, alpha };
    
       std::string_view to_string(rgba_color_channel my_channel) {
         switch (my_channel) {
           using enum rgba_color_channel;
           case red:   return "red";
           case green: return "green";
           case blue:  return "blue";
           case alpha: return "alpha";
        }
       }
    
  • В индексах из-за неопределённого поведения запрещено использование операции "," ("a[b,c]"). Прекращена поддержка большинства операций с переменными, объявленными с ключевым словом volatile, в том числе запрещены операции "++" и "--" со стандартными типами.
  • Сокращено число ситуаций, в которых требуется указание "typename" для информировании о наличии типа.


  1. Главная ссылка к новости (https://herbsutter.com/2020/09...)
  2. OpenNews: Утверждён стандарт C++17
  3. OpenNews: Спецификация C++0X принята в качестве международного стандарта C++11
  4. OpenNews: Опубликован новый международный стандарт для языка Си (C1X/C11)
  5. OpenNews: Объявлено о готовности международного стандарта C++14
  6. OpenNews: W3C придал WebAssembly статус рекомендованного стандарта
Лицензия: CC-BY
Тип: К сведению
Короткая ссылка: https://opennet.ru/53670-cpp
Ключевые слова: cpp, standard
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (359) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Alex (??), 09:43, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +92 +/
    К C++40 многие разработчики уже не заметят как плавно стали brainfuckerами.
    Язык уже настолько мутировал что для не посвящённого программиста из других языков будет выглядеть все как случайный набор символов...
     
     
  • 2.6, anonimm (?), 09:49, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Уже давно проводятся конкурсы по написанию максимально непонятного кода на c и c++, любителям стрелять себе в ногу не нужно ждать ещё 20 лет.
    С другой стороны, почти на любом ЯП можно написать хорошо читаемый код.
     
     
  • 3.21, m.makhno (ok), 10:26, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    http://ermak.cs.nstu.ru/cprog/html/

    у нас вот такой в НГТУ сайт был и остается по сей день - сам чёрт ногу сломит, всякое желание пропадало учить сишки, хех

     
     
  • 4.29, Аноним (-), 10:43, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    >Си/Си++

    Скажи ему пусть определится или Си или Си плюс-плюс.

     
     
  • 5.64, Сишник (?), 11:52, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    сиси плюс-плюс
     
  • 5.107, Аноним (107), 13:05, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Какая разница? Тогда уж UB и UB++
     
  • 4.128, Lex (??), 15:01, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну кстати Романов - неплохой тип, хотя сайт кнчн тот ещё.

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

     
  • 4.177, коржик (?), 19:15, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    нгту +
     
  • 4.248, Аноним (248), 07:42, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Содержимое сайта весьма и весьма достойное.
     
  • 4.362, iPony129412 (?), 08:01, 11/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > у нас вот такой в НГТУ сайт был и остается по сей день

    Не ври.

    cs.nstu.ru перенаправляет на avtf.nstu.ru

    Что ты как-то смог в недрах сайта откопать архаичную "пасхалку" не значит, что "сайт остается по сей день"

     
     
  • 5.364, m.makhno (ok), 08:41, 11/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    не знаю, откуда ты ходишь по сети, но с Нск с нескольких провайдеров ссылка открывается так, как я написал
     
  • 4.363, iPony129412 (?), 08:06, 11/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А так причём тут вообще...

    И такое есть
    http://ermak.cs.nstu.ru/~romanow/solus_rex/index.htm

    Опеннетчикам понравится... Кто такой Ермак не знаю.

     
     
  • 5.365, m.makhno (ok), 08:42, 11/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    я просто примеры кода показать...

    А Ермак - казак такой знаменитый хех

     
     
  • 6.366, iPony129412 (?), 10:43, 11/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > я просто примеры кода показать...

    Ну так то же АВТФ - там что-то уровня ПТУ.
    А академическое это ан приматов - там тебе за чуть что не так, так сразу по башке томиком Кнута дадут.
    Ещё и компилятор заставят писать, что бы знал, как происходит, а не так писал калякал...

     
  • 4.375, Аноним (375), 13:18, 13/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    отличный сайт, спасибо за ссылку.
     
  • 3.292, ivan (??), 19:55, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А причём тут С?
     
  • 3.373, Жилин (?), 10:33, 12/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не надо присовокуплять Си к этой @#$%$^. Си умно спроектированный лаконичный и очень прагматичный язык.
     
  • 2.14, asdasd (?), 10:09, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для "непосвященного" тарабарщиной будут выглядеть только особая магия на template'ах (где смесь изи SFINAE и прочего constexpr). Все остальное интуитивно понятно.
     
     
  • 3.18, Аноним (18), 10:23, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    При том SFINAE тарабарщина с C++20 заменяется Концептами, которые более читаемые. Так что все конструкции C++ должны быть понятны программисту другого высокоуровнего языка программирования (в отличие от большинства конструкций некоторых эзотерических языков).
     
     
  • 4.150, Аноним (150), 17:10, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Представления комитета C++:
    > SFINAE тарабарщина с C++20 заменяется Концептами, которые более читаемые

    Реальность: к тарабарщине SFINAE добавляется ещё и тарабарщина концептов.

     
  • 3.122, Аноним (122), 14:36, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Прекращена поддержка большинства операций с переменными, объявленными с ключевым словом volatile, в том числе запрещены операции "++" и "--" со стандартными типами

    и это?

     
  • 2.80, CAE (ok), 12:21, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +12 +/
    При этом по-прежнему ругать за это принято perl :)
    Хотя он, объективности ради, в среднем уже давно понятнее современного C++
     
  • 2.262, Аноним (262), 11:03, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это справедливо для любого языка, для которого разрабы боятся сломать совместимость и послать на йух всех пользователей устаревших несовместимых версий, объявив их недолюдьми. В питоне тоже теперь стремаются, после того как выянилось, что макакам лень мигрировать код, они лучше старое говно по типу python 2 жрать будут, даже сейчас, когда 2 официально объявлен мёртвым, у очень многих проектов есть требования совместимости с python 2. Так что питона 4 не будет, и его постигнет участь всего остального стабильного говномейнстрима. А жаль.
     
     
  • 3.327, InuYasha (??), 15:31, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не побоялись и создали D. Где он сейчас...
     
  • 2.284, trdd (?), 16:38, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Харэ ныть. Если не осилятор сиди и ржавей дальше вместе с Rust. У нормальных людей всё красиво логично и понятно. А все конструкции тебя никто использовать вообще не заставляет.

    Твой рас вообще читать не возможно.

     

  • 1.3, trolleybus (?), 09:44, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > Основные особенности C++20

    А что, модули больше не основная особенность?

     
     
  • 2.59, Аноним (59), 11:46, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пока на них основная масса либ перейдет, уже C++32 выйдет :(
     
  • 2.261, Аноним (262), 10:58, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    CMake не поддерживает - значит нет.
     

  • 1.4, eee (??), 09:46, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +36 +/
    мляяяяя, хочу обратно в 1989 год, когда плюсы были простым и понятным языком
     
     
  • 2.5, Аноним (5), 09:48, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не обязательно так далеко, достаточно просто в до-C++11 времена.
     
     
  • 3.9, anonimm (?), 09:53, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Что вам мешает писать код, ограничиваясь старыми возможностями? А многие из нововведений c++-профессионалы долго ждали.
     
     
  • 4.15, Sw00p aka Jerom (?), 10:09, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –12 +/
    Как же они долго ждут динамической типизации :)
     
     
  • 5.87, Аноним (87), 12:38, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В компилируемом языке?
     
     
  • 6.179, коржик (?), 19:19, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    в c# dynamic есть. Вижу крайне редко, чтобы кто-то пользовался
     
     
  • 7.204, bOOster (ok), 21:25, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    С шарп компилируемый язык!? Издеваешься чтоли? То что является кодом для виртуальной машины - компиляцией называться не может. Это интерпретатор.
    Для тех кто в танке.
     
     
  • 8.207, Sw00p aka Jerom (?), 21:29, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    забыли про рантайм, а шаблоны в ц что это ... текст свёрнут, показать
     
     
  • 9.209, bOOster (ok), 21:35, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это не аналог Си шарп и Java ... текст свёрнут, показать
     
     
  • 10.214, Sw00p aka Jerom (?), 21:55, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    не С , не Java - не исполняют программу читая построчно исходный код ака интерп... текст свёрнут, показать
     
     
  • 11.240, daemontux (?), 04:49, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вопрос не в этом Сможете запустить прогу на Java, без самой явы На компилируем... текст свёрнут, показать
     
     
  • 12.256, alex312 (?), 10:21, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    вопрос в том, что ты придумал себе определение и квакаешь Ознакосься, для начал... текст свёрнут, показать
     
     
  • 13.267, Sw00p aka Jerom (?), 11:59, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    продублирую и вам моё определение В исполнение инструкций тем же ЦП это что З... текст свёрнут, показать
     
     
  • 14.269, alex312 (?), 12:27, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Во первых, если отвечать на твой, немного дебильный вопрос, то да без Явы програ... текст свёрнут, показать
     
  • 11.244, bOOster (ok), 07:20, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А выполнение ПРОМЕЖУТОЧНОГО кода ПОБАЙТОВО виртуальной машиной это не интерпрета... текст свёрнут, показать
     
     
  • 12.257, alex312 (?), 10:23, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    НЕТ ... текст свёрнут, показать
     
  • 12.266, Sw00p aka Jerom (?), 11:55, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В исполнение инструкций тем же ЦП это что Зачем путать понятия процесса исполне... текст свёрнут, показать
     
  • 11.312, Онаним (?), 09:50, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Там между сциллой и харибдой JIT, который на ходу транслирует промежуточное пре... текст свёрнут, показать
     
  • 9.239, Кайф (?), 04:23, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Шаблоны компилятся в машинный код... текст свёрнут, показать
     
     
  • 10.268, Sw00p aka Jerom (?), 12:02, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    когда я упомянул шаблоны, не шла речь о компиляциях и тд , речь изначально шла о... текст свёрнут, показать
     
  • 8.215, maximnik0 (?), 21:58, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вики утверждает что стандарт на язык придусматривает и возможность компилируемог... текст свёрнут, показать
     
     
  • 9.249, bOOster (ok), 07:43, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Что чушь, а не компиляция Включение в состав приложения виртуальной машины в пр... большой текст свёрнут, показать
     
     
  • 10.270, maximnik0 (?), 12:40, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошо а что там с mono,старых версий Я помню по диску LinuxFormat -ряд приложе... текст свёрнут, показать
     
  • 8.279, Аноним (279), 15:00, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В танке тут ты Любые ООП языки не компилируются в машинных код Нету в компьюте... большой текст свёрнут, показать
     
     
  • 9.285, bOOster (ok), 17:04, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    gt оверквотинг удален Ты прав относительно JAVA, C шарп А вот относительно C... большой текст свёрнут, показать
     
     
  • 10.309, Аноним (279), 00:21, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Мосье теоретик, как я посмотрю То что вам большинство компиляторов кроме cla... большой текст свёрнут, показать
     
  • 6.212, Sw00p aka Jerom (?), 21:51, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В компилируемом языке?

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

     
  • 5.99, anon345634758 (?), 13:00, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А чего ждать собственно?
    Все кому надо было, давно нагородили собственные аллокаторы.
     
  • 4.50, Аноним (50), 11:29, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Иногда код надо еще и читать, и уже читаемый код может быть написан с применением "нововведений"
     
     
  • 5.89, Аноним (87), 12:42, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "Новведения" позволяют избегать накруток этих "нововведений" сверху-сбоку языка самими программистами.
     
     
  • 6.120, Аноним (50), 14:16, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Из-за чего язык становится непростым и непонятным, об этом было исходное сообщение
     
  • 2.7, мимокрок (?), 09:51, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Возвращаться в 89 не надо, ведь и сегодня ещё есть ламповая сишечка
     
     
  • 3.108, Аноним (87), 13:06, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В компании с GObject?
     
     
  • 4.131, Какер (?), 15:05, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, там ООП на уровне C++, только синтаксис корявее. Другое дело, что в C++ ООП не сказать что образцовое :)
     
     
  • 5.234, n242name (?), 02:08, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    где ООП образцовое?
     
     
  • 6.264, Пользователь (?), 11:23, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В народе поговаривают что в Objective-C, но не прижился
     
     
  • 7.361, n242name (?), 05:19, 11/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > В народе поговаривают что в Objective-C, но не прижился

    Это у того, у которого неймспейсы втюхали в имена классов?
    Пойду проблююсь...

     
  • 6.306, Аноним (306), 23:06, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > где ООП образцовое?

    Очевидно, что в праматери всех и вся - Smalltalk.

     
  • 2.22, Аноним (22), 10:29, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Тогда пиши на Rust
     
     
  • 3.23, Аноним (18), 10:32, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Действительно, в нём же всё очень понятно и на него огромное количество вакансий </sarcasm>
     
     
  • 4.130, Lex (??), 15:05, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Имхо, таки понятней, чем на свеженьких плюсах или жабе
     
  • 4.165, 0x2A (?), 18:10, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Видел вакансию с++ и/или Rust - 450k деревянных
     
     
  • 5.273, Страшный рукожоп (?), 13:27, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Обещяю вам 800k деревянных :-)
     
  • 2.30, ДмитрийСССР (?), 10:48, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А если допустим писать на С++11, то можно ли будет собрать софт под современные ОС? И можно ли будет собрать софт на С++11 под современную ОС через лет 10?
     
     
  • 3.44, Аноним (18), 11:23, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да и да
     
  • 3.60, Аноним (59), 11:49, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Лучше минимум 14. Уже не все либы поддерживают C++ ниже 14. Плюс 14 более вкусные лямбды
    В идеале - минимум 17, как Qt 6
     
     
  • 4.73, Michael Shigorin (ok), 12:04, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Правило опытного админа: "не тяни в рот каждую новую блестяшку".
    Правило зелёного разработчика: "ой, блестяшечки!!1".

    Как вы мне дороги...

     
     
  • 5.82, Аноним (82), 12:28, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +12 +/
    > Правило опытного админа: "не тяни в рот каждую новую блестяшку".
    > Правило зелёного разработчика: "ой, блестяшечки!!1".
    > Как вы мне дороги...

    Именно поэтому, Михаил, ваша команда и притянула новую блестяшку (systemd) в свой дистрибутив, дефолтом, хотя прежний вариант очень хорошо работал, причём как притянули?!... освежите пожалуйста  в памяти!
    И судя по тому, какое сейчас положение вещей, то воз будет ехать по заданной колее, "Just as planned".

    Вы нам тоже дороги, хотя вот, за державу обидно!

     
  • 5.142, Аноним (59), 15:43, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Правило опытного разработчика: "блестяшки желательно с аппетитом рассасывать, изучать, тестировать и постепенно внедрять, если достаточно притягательно блестит"

    На текущий момент блестяшка - C++20. С ним надо аккуратно, есть пока даже не до конца реализован.

    А вот C++17 - уже актуальный для использования стандарт, меньше 14 не имеет смысла в новых/актуальных проектах, и во многих юзкейсах просто неудобно.

     
     
  • 6.152, Аноним (150), 17:15, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Осторожнее, у него сейчас начнёт подгорать, ведь его любимый lcc до сих пор не научился C++17.
     
     
  • 7.168, Lex (??), 18:27, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Исходники ОСи теперь не скомпилятся  ?
     
  • 7.176, llolik (ok), 19:15, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Научился уже http://www.mcst.ru/lcc.
     
     
  • 8.198, Аноним (150), 20:52, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Научился, ага C 177 17, ржунимагу ... текст свёрнут, показать
     
     
  • 9.216, llolik (ok), 22:16, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну ржать-то можешь сколь угодно, но тем не менее работа идёт и код компилируется... текст свёрнут, показать
     
     
  • 10.258, Аноним (150), 10:23, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да чего спрашивать Как будто я сам мало с этим говном дела имел 8230 Заявляют... текст свёрнут, показать
     
  • 3.69, Аноним (69), 11:58, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Можно и С++ 98 использовать и да оно соберется... Но зачем ?.
    Есть даже специальные библиотеки, которые переносят новые возможности стандартной библиотеки на старые стандарты языка.
     
  • 3.110, Аноним (87), 13:10, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >И можно ли будет собрать софт на С++11 под современную ОС через лет 10?

    Если не выкинут опцию -std=c++11 или -std=gnu++11.

     
  • 3.153, Аноним (153), 17:17, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > если допустим писать на С++11, то можно ли будет собрать софт под современные ОС?

    avxsynth под debian-buster не собирался (нужны патчи), а в ubuntu-xenial норм. Как раз какие-то конструкции стали запрещены.

     
  • 3.208, Poulch (?), 21:30, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    трактуется как ошибка. и переписать сложный build/mаkefile большого проекта та еще задача... те тупо свежий gcc не соберет ничего из времен ну допустим gcc 2.95 без танцев с бубном.
     
  • 2.67, Аноним (69), 11:56, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, да. Без работы с пмятью, статического анализа, итераторов, стандартных колекций, модулей и вообще без всего. ДЛя этого есть С.
    Для с++ нужно прочитать 2-3 книги и посидесть с примерами... иначе да... все "сложнанипанятна" так-то многие старые вещи стараются не использовать, например с-шные масивы - они конечно есть, но std::array<> лучше (с концептами - еще лучше).
    Мне не хватает только метаклассов, но они еще сырые, надеемся на 23-й год. Такое кол-во хаков и макросов с автогенераторами можно будет объявить легаси... ух.
     
     
  • 3.124, Аноним (122), 14:41, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В C RAII нет. Вот был бы язык как C только с RAII, а так призодится с C++ мучиться :-)
     
     
  • 4.253, Аноним (253), 08:56, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кто мешает использовать концепцию RAII в С
     
     
  • 5.259, DerRoteBaron (ok), 10:35, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Видимо, невозможность это сделать красиво и читаемо по стандарту и нежелание использовать гнутые расширения
     
  • 2.146, Аноним (146), 16:05, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >мляяяяя, хочу обратно в 1989 год, когда плюсы были простым и понятным языком

    Плюсы никогда не были простым и понятным языком.

     
  • 2.334, Аноним (334), 19:40, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Чушь полнейшая, плюсы до стандарта 11 года(или 0х) - вообще неюзабельны.
     

     ....большая нить свёрнута, показать (64)

  • 1.8, Аноним (8), 09:53, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    > Добавлены "концепции"

    А когда наконец добавят концепцию KISS?

     
     
  • 2.20, Аноним (18), 10:25, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Эту концепцию должен применять и разработчик ПО, никто её за вас не применит
     
  • 2.340, СССР (?), 00:29, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    если нужен кисс пиши на си  )
     

  • 1.10, anonimm (?), 09:53, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    Мои поздравления коллегам-плюсовикам!
     
  • 1.11, Онаним (?), 09:56, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Спейсшип добавили наконец, лол.
    А так да, множество расширений, которые уже активно использовались, наконец-то стандарт.
     
  • 1.12, имя_ (?), 10:01, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    концепты выглядят интересно
     
     
  • 2.70, Аноним (69), 12:00, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вагон дыр закрывают в шаблонах. Теперь в правильно написанный шаблон нельзя запихнуть то что в нем не должно быть - компилятор не даст.  
     
     
  • 3.205, bOOster (ok), 21:27, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну теперь любители прихать куда-либо что-либо недолжное в нем быть - взвоют.. Сишники, где вы??
     

  • 1.13, Fracta1L (ok), 10:03, 07/09/2020 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –17 +/
     
     
  • 2.62, Аноним (59), 11:49, 07/09/2020 Скрыто модератором
  • +7 +/
     
     
  • 3.206, bOOster (ok), 21:28, 07/09/2020 Скрыто модератором
  • +/
     
  • 2.201, Аноним (201), 21:12, 07/09/2020 Скрыто модератором
  • +/
     
  • 2.245, EddyEm (?), 07:35, 08/09/2020 Скрыто модератором
  • +/
     

     ....ответы скрыты модератором (4)

  • 1.16, Аноним (18), 10:16, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Ура! Улучшили язык, на котором написана треть повседневного софта

    Мои поздравления всем C++никам! Вы молодцы, на вас всё держится

     
     
  • 2.226, Odalist (?), 23:53, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Вы молодцы, на вас всё держится

    Спасибо. Еще я могу на Хаскеле.

     
     
  • 3.289, Аноним (289), 19:29, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    нет, спасибо, на хаскеле не надо.
     
     
  • 4.291, Odalist (?), 19:52, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > нет, спасибо, на хаскеле не надо.

    Хорошо, тогда я буду продолжать радовать всех прогами на С++.

     
  • 2.316, Аноним (150), 11:31, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Вы молодцы, на вас всё держится

    Надо говорить «вы все красавцы!»

     

  • 1.17, Аноним (17), 10:21, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    В с++ каждый фреймворк все ещё изобретает строки или спустя 20 лет все же перешли на std::string?
     
     
  • 2.63, Аноним (59), 11:51, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    После 11 плюсов многие компании отказались от кастомных строк в пользу std::string
    Но тот же QString всё ещё удобнее и функциональнее
     
     
  • 3.158, Аноним (158), 17:42, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Т.е. всё ещё велосипедят...
     
     
  • 4.172, Аноним (59), 18:51, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Стандартные классы в стл вообще довольно куцые
     
  • 2.173, Аноним (-), 19:04, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    std::string - это боль C++ и один из самых худших дизайнов класса (детали смотри у Саттера).
    А сами по себе "строки" - это тоже боль и тормоза и зоопарк видов строк (без разницы в каком языке).
    Поэтому - неудивительно что "изобретали". Что сейчас - не знаю.
     
     
  • 3.243, Аноним (17), 07:11, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Изобретатели потому что почти 20 лет лет небыло строк никаких, только массивы из символов, а потом переходить не хотели.
    Ни в java, ни в js, ни даже в Паскале проблем со строками небыло.
     
  • 2.293, Аноним (289), 20:02, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    строки уже constexpr, а ты их всё ещё изобретаешь. *бать ты застрял в прошлом, братюнь.
     
  • 2.294, Аноним (294), 20:44, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Сейчас нет необходимости, это было во времена C++98/03. Теперь разве что свои аллокаторы иногда изобретают.
     
  • 2.338, СССР (?), 23:28, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    в чем плохо создать свой класс обертка и дополнить его своими методами ?
     

  • 1.19, lockywolf (ok), 10:24, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Он всё ещё строгое надмножестао с++? Или всё?
     
     
  • 2.105, anon345634758 (?), 13:03, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну судя по тому что выкинули volatile, уже скорее нет.
    Но мне кажется это и к лучшему
     
     
  • 3.187, SR_team (ok), 19:53, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > выкинули volatile

    так и не успел понять зачем он был нужен

     
     
  • 4.237, draw1 (?), 03:14, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Например, чтоб "бить по рукам" оптимизатор в хитрых низкоуровневых моментах. Иногда надо чтоб код делал ровно то что написано. Буквально. Без сюрпризов и самодеятельности (а в ассемблер уходить лень ради какой-то мелочи, да и переносимость хочется).
    Может для аналогичного теперь есть какая-нибудь очередная новая синтаксическая конструкция...
     
     
  • 5.263, Webmonkey (?), 11:18, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >"бить по рукам" оптимизатор в хитрых низкоуровневых моментах

    UB-driven development?

     
  • 4.246, Eddy_Em (?), 07:37, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для разного рода embedded'щины.
     
  • 4.347, Аноним (347), 03:49, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот есть у нас простенький микроконтроллер, на нем куча разных прерываний вылезает, во всех переменные могут поменяться, а без volatile - компилятор, который вообще не знает про прерывания, так соптимизирует что из переменной будет читаться одно и тоже.
     
  • 4.351, Аноним (351), 06:25, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Для того чтобы сказать компилятору что это область памяти (переменная) особенная и может измениться в любой момент и она тебе (компилятору) не подконтрольна, так что не нужно производить над ней оптимизации. Так же, компилятор, на некоторых платформах, вставляет instruction fans (компилятор - не перемешивай порядок операций над этой областью) и cpu fans (процессор - выполняй инструкции в том порядке в котором они написаны, а не перемешивай в угоду производительности ибо есть side эффекты). Применяется когда ты работаешь с регистрами CPU, внешними устройствами, многопоточность (google: Scott Meyers Singleton, как самая известная мне иллюстрация проблемы) и другой "особенной" памятью.
     
  • 3.255, anonymous (??), 09:50, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Его не выкинули, просто теперь вместо 'PORTA &= 0xF0' нужно писать 'PORTA = PORTA & 0xF0', где PORTA это '#define PORTA (*(volatile uint8_t*)(0xBEEF))'.
    Смысл этого изменения в том, что некоторые люди думали что операции над volatile атомарные, и пытались использовать его вместо std::atomic, с соответствующим результатом.
    А теперь явно видно, что запись и чтение volatile это разные операции.
     
     
  • 4.346, Аноним (-), 03:28, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Взял и утрамбовал бифа. Люди думали - слабовато, надо так - человечество считало что volatile - это atimic, но потом я прочитал ман пагу и всех спас..
     
  • 3.296, Аноним (296), 20:51, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не выкинули, но настоятельно советуют его использовать только по назначению - при прямой работе с хардварью. Что правильно - для всяких там синхронизаций надо использовать средства стандартные библиотеки, а не ручками спинлоки крутить.
     
     
  • 4.367, Alex (??), 12:52, 11/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    чтобы ручками спинлоки крутить есть std::atomic если надо
     
  • 2.111, Аноним (87), 13:23, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Давно нет.
     

  • 1.25, Аноним (25), 10:35, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Или вы не верите в автокомпилит ?
     
  • 1.26, Grunman (ok), 10:38, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Особую пикантность новости придает то, что модули, которые все так ждали, ни одним из перечисленных компиляторов не поддерживаются.
     
     
  • 2.112, anonymous (??), 13:24, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    clang & msvc экспериментально давно поддерживают модули.
     
  • 2.113, Аноним (87), 13:26, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Может формально какими-то и поддерживаются, только толку пока мало. STL-то пока совсем не в модулях.
     
     
  • 3.114, anonymous (??), 13:29, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А этого и не было в стандарте пока. Такие дела.
     

  • 1.27, Аноним (27), 10:38, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Ничёси! Летающая тарелка прям как в Perl'е!
     
  • 1.28, Аноним (-), 10:39, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Любого кто скажет что язык Си является подмножеством языка Си плюс-плюс - сразу бить в морду.
     
     
  • 2.104, К (?), 13:01, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    мамин суп покушали уже? Боец вы наш интернетовский.
     
  • 2.330, Ordu (ok), 16:51, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Язык Си является подмножеством языка C++.

    Я сказал, а теперь ударь меня, детка.

     

  • 1.31, Аноним (31), 10:52, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Dlang лучше.
     
     
  • 2.32, Аноним (31), 10:52, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Nim лучше.
     
     
  • 3.34, Аноним (18), 10:54, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хаскель наше всё!
     
     
  • 4.52, Dzen Python (ok), 11:32, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Фу. Только F#, только дотнет, только молодость, только Мытищи, только хардкор!
     
     
  • 5.55, Аноним (31), 11:34, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Только F*
     
     
  • 6.336, anonimous (?), 20:36, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Только Oberon/Scala
     
  • 5.169, Lex (??), 18:33, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нее, Obj-C круче
    .. и, кроме шуток, код выглядит ощутимо приятней и документированней( когда глаза привыкнут к тому обилию квадратных скобок кнчн )
     
     
  • 6.171, Аноним (87), 18:45, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну а чем квадратные скобки принципиально хуже фигурных?
     
     
  • 7.175, Lex (??), 19:07, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ничем
    [[[но поначалу] бывает ] непривычно:[такое обилие:их ]]

    Хотя в целом и концепция с передачей сообщений там была весьма интересна

     
     
  • 8.247, Eddy_Em (?), 07:40, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В бездну скобочки Begin-end - сила ... текст свёрнут, показать
     
  • 6.232, НяшМяш (ok), 02:04, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Нее, Obj-C круче

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

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

     
     
  • 7.252, Lex (??), 08:33, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У свифта, насколько помню, поддержка норм работы с т н статическими либами обычн... большой текст свёрнут, показать
     
  • 3.159, Аноним (87), 17:43, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Может Nim и хорош, но у D знакомый C-подобный синтаксис.
     
     
  • 4.190, Аноним (31), 20:09, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Пользуетесь D? Чем привлекает, нравится?
     

  • 1.33, Аноним (33), 10:54, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Когда за синтаксисом кода не видно логики программы, это плохо. Всё дальше уходят от ключевой особенности Си - простоты. Хотя, как уже намекнул коллега выше, никто не мешает не пользоваться.
     
     
  • 2.35, Аноним (18), 10:56, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Хорошо что в C++ это не так, как в вашем любимом языке. С каждым релизом становится всё проще писать C++ код
     
     
  • 3.41, Tita_M (ok), 11:13, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >С каждым релизом становится всё проще писать C++ код

    This is what c++ programmers actually believe!

     
     
  • 4.46, Аноним (18), 11:27, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    То ли дело любой другой язык програмирования:

        public static void NotNull < T > (T argument,  
            [CallerArgumentExpression("argument")] string argumentExpression = null)  
        where T: class {  
            if (argument == null) throw new ArgumentNullException(paramName: argumentExpression);  
        }

     
     
  • 5.51, Dzen Python (ok), 11:31, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Уж явно читаемей, чем код на джаве, который позиционируется как копроративный язык для самых маленьких.
    Для полного познания дзена рекомендую открыть любой коммунити код у гугла или джет-брейнс.
     
     
  • 6.92, h65eyh5 (?), 12:46, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >джаве, который позиционируется как копроративный язык для самых маленьких

    С Go спутали.

     
  • 6.118, Аноним (296), 14:08, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    На джаве все вполне читаемо. Многословно, но это другая проблема.
     
  • 5.77, Аноним (18), 12:17, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
        public static void NotNull < T > (T argument,  
            [CallerArgumentExpression("argument")] string argumentExpression = null)  
        where T: class {  
            if (argument == null) throw new ArgumentNullException(paramName: argumentExpression);  
        }


    Это вообще что за язык ^
    Swift?

     
     
  • 6.78, Аноним (18), 12:18, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    C#
     
  • 5.228, anonimous (?), 01:22, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    generic function Min<T>(const A, B: T): T;
    begin
      if A < B then Result := A else Result := B;
    end;
     
  • 3.155, Аноним (150), 17:21, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > С каждым релизом становится всё проще писать C++ код

    …и всё сложнее — понимать его.

     
  • 2.38, Аноним (38), 11:04, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >  никто не мешает не пользоваться

    мешать-то не мешает, но если в 2020 писать код на С++98 или С++03 (последние стандарты, с которыми я имел дело), смотреть будут странно.
    И опять же всю эту мутотень один хрен изучать, потому что какой-нибудь Вася Пупкин будет-таки пихать 17 или даже 20 стандарт. Я вот в одном коде увидел эти лямбды и нихрена не понял, что там написано.
    Как же хорошо, что я давно соскочил с этого монстра...

     
     
  • 3.45, Аноним (18), 11:25, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Зато в ругих языках лямбды предельно просто понять, и их синтаксис загуглить </sarcasm>
     
     
  • 4.47, Аноним (38), 11:27, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В Erlang, например, все элементарно:
    fun (Arg) ->
     
     
  • 5.184, коржик (?), 19:45, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    мои любимые в .net: (x, y) => x + y

    так же в расте: |x, y| x + y

     
     
  • 6.233, НяшМяш (ok), 02:06, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >  мои любимые в .net: (x, y) => x + y

    Главное всегда уточнять, а то подумают что ты JSник (1 в 1 такой же синтаксис)

     
     
  • 7.280, Lex (??), 15:26, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > 1 в 1 такой же синтаксис

    Вы не понимаете! Это - другое !!111


     
  • 4.48, Аноним (38), 11:28, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зараза, отправился случайно.

    fun(Arg) ->
    some code
    end

    Все просто и понятно.

     
  • 4.53, Аноним (38), 11:33, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    и даже в Расте ламбда определяется проще, чем в плюсах.
     
     
  • 5.65, Аноним (59), 11:54, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Почему "даже"?) Вообще, C++20 всё больше мотивирует изучать Хруст
     
     
  • 6.72, Аноним (38), 12:03, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну так я так и сделал. Посмотрел на стандарт С++17 (а там 2000 страниц) и решил, что ну его нафиг. Вспомнил еще все заморочки ООП с паттернами и прочей хренотой и решил, что лучше уж я выучу Rust, который оказался очень даже неплохим языком. И даже местами похож на Erlang.
     
     
  • 7.278, iLex (ok), 14:47, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это лишь потому, что Rust пока не успел развиться. Но с каждым релизом туда будут досыпать и досыпать синтаксического сахара и прочих наворотов, так что Rust-2030 тоже обзаведётся 2000-страничной краткой спецификацией, без которой там вообще хрен что поймёшь.
     
     
  • 8.287, Аноним (38), 18:50, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    да пофиг На наш век хватит незамусоренного Раста, а там может что другое появит... текст свёрнут, показать
     
  • 7.352, Аноним (351), 06:53, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну давай начнем с того, что сам язык (С++20) описан на 475 страницах, а остальное - stl и cstdlib. У С# - 531 а сколько страниц описания у .NET мне страшно представить. У Intel - Software Developer Manuals на 5к страниц и что дальше? Пожалуйста, воздержись от написания бреда и откровенной х...ерунды в интернетах о С/C++, так рождаются странные слухи и бестолковые легенды об этом языке, которые не отражают реальное положение дел.
     
     
  • 8.354, Аноним (38), 07:11, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Давай начнем с того, что про горячо уважаемый мной С я не писал вообще ничего А... текст свёрнут, показать
     
  • 7.359, anonimous (?), 18:50, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В Oberon-family языках с объемами стандартов все хорошо.

    > Разработка семейства языков ALGOL — Pascal — Modula-2 — Oberon — Oberon-2 — Component Pascal отмечена редукцией сложности синтаксиса языка. Полный синтаксис языка Оберон-2 описан всего в 33 предложениях по расширенной форме Бэкуса — Наура

     
  • 4.56, Аноним (38), 11:36, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    но вот это же вот: [=]() { return n; }
    это пипец. У меня первый вопрос был: "А что это за = в квадратных скобках и нафига оно нужно?"
     
     
  • 5.126, Аноним (122), 14:52, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У лямбды ключего свойство — область видимости переменных внутри. Очевидно что символ равно какое-то отношение к этому имеет.
     
     
  • 6.139, Аноним (139), 15:29, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    не всем это очевидно. В языках с "более простым и понятным" синтаксисом может не быть возможности управлять областью видимости переменных, а значит те, кто на них пишут уже привыкли не думать об этом
     
     
  • 7.151, 128293 (?), 17:11, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Языки с "более простым и понятным" синтаксисом минимум в несколько раз тормознее плюсов
     
     
  • 8.200, Аноним (200), 21:04, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ну мы-то про синтаксис лямбд, зачем тему переводишь ... текст свёрнут, показать
     
  • 5.295, Аноним (294), 20:51, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >У меня первый вопрос был: "А что это за = в квадратных скобках и нафига оно нужно?"

    Захват по значению. [&] - захват по ссылке.

     
  • 4.57, Аноним (38), 11:43, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В лиспе тоже просто: (lambda (arg) body).
    Других языков не знаю.
    Ну и нахрена такие сложности в плюсах?
     
     
  • 5.61, имя_ (?), 11:49, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ну какие там сложности? я хоть и знаком с языком только по книжке страуструпа, но ничего сложного в лямдбах крестов не вижу
    https://en.cppreference.com/w/cpp/language/lambda
     
     
  • 6.71, Аноним (38), 12:01, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А теперь представьте, что последний раз вы писали на плюсах, когда там еще этой пакости не было. И тут вам попался вот такой код:
    return {
        [](take_atom) -> result<taken_atom, bool> {
          return {taken_atom_v, false};
        },
        [=](put_atom) {
          if (self->current_sender() == user)
            self->become(available_chopstick(self));
        },
      };

    и поскольку это не ваш основной язык, вам лень гуглить, лезть в талмуд Страуструпа (который тоже надо нагуглить).
    Нафига вот эти [] и [=]? Почему бы не сделать кейворд lambda, как в Лиспе, или fun, как в Erlang, или как в Расте: let add_one_v2 = |x: u32| -> u32 { x + 1 };?
    Нет, надо такое, чтоб позаковыристей, чтоб враг не догадался.

     
     
  • 7.88, Аноним (69), 12:39, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    выше если что, ссылка на справкупо лямбдам лямбд с примерами использования, открыл ее - прочитал и уже все понятней стало.
     
     
  • 8.90, Аноним (38), 12:42, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Все гораздо проще - не надо писать на плюсах ... текст свёрнут, показать
     
     
  • 9.101, Аноним (69), 13:01, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А на чем мне написать кросплатформеную десктопную программу требующую кучу ресур... текст свёрнут, показать
     
     
  • 10.109, Аноним (38), 13:07, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я бы писал С или Rust для него вроде есть GUI-либы , но пишу серверный софт и р... текст свёрнут, показать
     
  • 10.166, пох. (?), 18:21, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    electron Ну да, все ж так делают А ресурсы ну юзер богатый, он заплатит ... текст свёрнут, показать
     
  • 10.185, коржик (?), 19:50, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    я бы рассматривал https avaloniaui net или Xamarin Native Хотя этот лучше д... текст свёрнут, показать
     
     
  • 11.186, Michael Shigorin (ok), 19:53, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А я бы не рассматривал, особенно если это ещё потом портировать ... текст свёрнут, показать
     
     
  • 12.250, коржик (?), 07:52, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я с авалонией профессионально не занимался, но у меня хобби такое, запускать неб... текст свёрнут, показать
     
     
  • 13.281, Lex (??), 15:37, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    React-Native -Но этот для мобил есчто К слову, у яблока не так давно с xamar... текст свёрнут, показать
     
     
  • 14.288, коржик (?), 19:22, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Посмотрел немного на React-Native Есть у меня ощущение, что он не очень-то и на... большой текст свёрнут, показать
     
     
  • 15.314, Lex (??), 10:15, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Он и некоторые другие довольно похожи на Xamarin Основная разница у RN в том, ч... большой текст свёрнут, показать
     
  • 7.91, имя_ (?), 12:44, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    в общем согласен, с наскоку можно не понять. Но есть пара уточнений:
    > талмуд Страуструпа

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

    >в Расте: let add_one_v2 = |x: u32| -> u32 { x + 1 }

    признаюсь, если бы не в контексте лямбд, я бы не сразу понял эту запись (|bla-bla| чем-то похоже на руби)

     
     
  • 8.95, Аноним (38), 12:50, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    именно поэтому я привел более простые примеры из Эрланга и Лиспа Почему в С н... текст свёрнут, показать
     
     
  • 9.98, Аноним (69), 12:59, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    РУЧНОЕ УПРАВЛЕНИЕ ПАМЯТЬЮ ССЫЛКИ И УКАЗАТЕЛИ, ИЗБЕГАНИЕ КОПИРОВАНИЯ Вы сравнивае... текст свёрнут, показать
     
     
  • 10.106, Аноним (38), 13:04, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я сравниваю синтаксис Или что, все вышеперечисленное не дает в плюсах сделать н... текст свёрнут, показать
     
     
  • 11.127, Аноним (122), 14:56, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Не даёт, вы должны явно указать компилятору какие переменные будут доступны в за... текст свёрнут, показать
     
  • 8.368, Alex (??), 12:56, 11/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А как взять что-то в замыкание в этом вашем расте ... текст свёрнут, показать
     
  • 7.93, Аноним (139), 12:46, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > А теперь представьте, что последний раз вы писали на плюсах, когда там еще этой пакости не было.

    а если вы ни на чем, не писали, то ни на чем писать и не начнете, ведь вам лень гуглить.

    Вот приходится иногда ковыряться и в джаве, и в жс, и в питоне, и в еще нескольких языках и ни один из них не мой основной. Чем C++ в этом варианте хуже?

     
     
  • 8.94, Аноним (38), 12:49, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну а мне 99 времени приходится ковыряться в Эрланге, который по совместительств... текст свёрнут, показать
     
     
  • 9.103, Аноним (139), 13:01, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    а я вот пока с ним не сталкивался в эрланге объекты переменные для лямбд захваты... текст свёрнут, показать
     
     
  • 10.265, Аноним (265), 11:48, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да ... текст свёрнут, показать
     
  • 5.300, Ordu (ok), 21:45, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Захват переменных замыканием В лиспе если у тебя есть объект, то лиспу пофигу, ... большой текст свёрнут, показать
     
     
  • 6.321, Аноним (38), 12:01, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    спасибо, Rust и обычная сишка попроще будут.
     
  • 3.68, iPony129412 (?), 11:56, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Я вот в одном коде увидел эти лямбды и нихрена не понял, что там написано.

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

     
     
  • 4.74, Аноним (38), 12:05, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема в том, что тут это стандарт и общепринятая практика, а не говнокод отдельно взятого индивида, которого можно просто напинать в курилке.
     

     ....большая нить свёрнута, показать (59)

  • 1.37, Анонимчик (?), 10:59, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    если есть выбор, то использую c++, как c++ без классов - pod + stl + templates
     
     
  • 2.161, Аноним (87), 17:47, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    STL без классов? ;)
     

  • 1.39, Аноним (39), 11:06, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >>       { a == b } -> std::boolean;

           { a != b } -> std::boolean;
    Ну почему это должно выглядеть так непонятно и непоследовательно?

     
     
  • 2.160, Аноним (158), 17:44, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    сплюснутые же придумывали, нормальные люди так бы не сделали.
     
  • 2.313, Онаним (?), 09:53, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хипстеры добрались и до плюсов.
     

  • 1.40, Кульпрогер хеловорлда (?), 11:08, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Полезно, одобряю
     
  • 1.42, Иваня (?), 11:13, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    То чувство, когда плюсы сложнее раста...😭
     
     
  • 2.49, аноним12345 (?), 11:28, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ждем, когда в теме появятся растоманы
     
  • 2.66, Аноним (59), 11:55, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Так Раст в большинстве случаев не очень сложный
    Но иногда бывают эпохальные лингвистические повороты, да. Впрочем, как и в любом языке
     
     
  • 3.97, Аноним (97), 12:57, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Он не очень сложный. Он просто излишне сложный так где не надо.
     
     
  • 4.203, Аноним (201), 21:22, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    всё имеет свою цену
    заморочки раста с временами жизни переменных - плата на надёжность и отсутствие неопределённого поведения, без использования сборщиков мусора
     
  • 3.304, Аноним (296), 23:03, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Управление памятью - вещь непростая сама по себе, и эта сложность обязательно где-то вылезет - либо в GC, либо в языковых конструкциях, либо в уязвимостях :-)
     

  • 1.43, Аноним (43), 11:17, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Так, а где Networking?
    Они его ещё с C++14 обещают (если не раньше), говорят что ещё чуть-чуть, всё почти готово, реализация уже есть в бусте/асио нужно только в стандарт прописать, добавим в следующем мажорном релизе, мамойклянусь! А воз и ныне там, в C++23 вообще про Networking ни слова.
     
     
  • 2.54, Иваня (?), 11:34, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я юзаю https://github.com/ValveSoftware/GameNetworkingSockets
     
     
  • 3.100, Аноним (43), 13:01, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так с подключением внешней зависимостью какого-нибудь буста или закидыванием в дерево какого-нибудь асио проблем нет.
    Проблема в том что в крестах ВООБЩЕ нет никакого кросплатформенного способа взаимодействия с сокетами искаропки. И не будет минимум до 2026 года, ибо в C++20 их перенесли на хз когда, а судя по тому что в C++23 это даже не планируют обсуждать то только к C++26 может и запилят.
     
  • 2.85, Аноним (69), 12:36, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Он зависит от Executors а с ними не сложилось. Добавят в с++ 23
     
     
  • 3.86, Аноним (69), 12:37, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Модули то ждали к С++17 а выкатили только к с++20
     

  • 1.58, Z (??), 11:45, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    А потом эти люди еще удивляются почему так стремительно растёт популярно GO
     
     
  • 2.79, Аноним (18), 12:19, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    и PHP
     
  • 2.83, Аноним (38), 12:31, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Не, ну вот из крайности в крайность не надо Да, современный С перегружен и пе... большой текст свёрнут, показать
     
     
  • 3.102, h65eyh5 (?), 13:01, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >слишком многословно

    Язык для оборонки создавался же. Многословность, чтобы меньше было возможности не заметить мелкую опечатку. Что скажете про Dlang и Nim?

     
     
  • 4.115, Аноним (115), 13:40, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не пробовал, не знаю.
     
  • 3.140, Аноним (140), 15:37, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Но и Go слишком прост, чтобы на нем делать серьезные проекты. Быстро накидать прототип или что-то несложное - да, можно. Но что-то сложнее нескольких файлов и нескольких сотен LoC - уже начинаются проблемы с построением архитектуры и чистотой кода.

    Так и скажи, что у тебя руки растут не с того места.

     
     
  • 4.164, Аноним (38), 18:08, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ага, на нормальных языках из того места, а на Go внезапно не из того. Ну да, ну да, конечно, проблема во мне, а в Гугле говно создать не могут по определению.
     
     
  • 5.170, Аноним (140), 18:39, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Профи отличается от начинающего умением использовать любой инструмент. Лет через двадцать кодинга на самых разных ЯП ты это осознаешь. По ходу и заметишь, что именно этот навык наиболее востребован и наиболее хорошо оплачивается. Капризульки и поиск "крутых ЯП для крутых проектов и крутых перцев"-это характерно для начинающих.

    ЗЫ конкретно про Go, его увлечённо взяли в оборот в крупнейших компаниях, включая РФ-вских, и пилят на нём проекты уровня bigdata платформ, тихо и молча.

     
     
  • 6.189, anonymousangler (?), 20:08, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это скорее отлияает тех, кто будет жрать сам знаешь что за деньги, от всех остальных. Не более.
     
  • 6.197, Аноним (150), 20:46, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > именно этот навык наиболее востребован и наиболее хорошо оплачивается

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

     
     
  • 7.213, Аноним (140), 21:54, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>умение писать качественный код

    Не повторяй то, что сказано выше фразой "умением использовать любой инструмент"

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

     
     
  • 8.219, Аноним (38), 22:46, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну что ж, давай перечислим языки, которые я освоил и многие забыл за в общем ... большой текст свёрнут, показать
     
  • 8.260, Аноним (150), 10:38, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не повторяй то, что сказано выше фразой нахвататься по верхам Можно уметь код... большой текст свёрнут, показать
     
  • 6.220, Аноним (38), 22:49, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > конкретно про Go, его увлечённо взяли в оборот в крупнейших компаниях, включая РФ-вских, и пилят на нём проекты уровня bigdata платформ, тихо и молча.

    да бэкенды на нем пилят в основном, поскольку вся РФ - один большой аутсорсер.

     
  • 6.221, Аноним (38), 22:54, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Профи отличается от начинающего умением использовать любой инструмент.

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

     
  • 6.315, Myyx (?), 10:20, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ок ос на брайнфаке запилил
     
  • 6.350, Анонимусс (?), 05:46, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен, неожиданно для себя понял,ч то мне, по большому счету всё равно на чем писать, а разобраться в особенностях можно из за пару недель...
     

  • 1.75, Аноним5487547 (?), 12:06, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Никак не дождусь автозаполнения аргументов, когда функцию объявленную как:
    foo(int a, int b = 10, int c = 20);
    можно использовать:
    foo(1, , 5); // foo(1, 10, 5);
    foo(1, int, 5); // если есть перегруза вроде foo(int a, double b = 15, int c = 20);
    Неужели так сложно?
     
     
  • 2.76, Анонимчик (?), 12:09, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    до сих пор стараюсь не писать на с++ из-за отсутствии такой важной возможности
     
     
  • 3.137, Аноним5487547 (?), 15:19, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Увы, но заменить c++ нечем. Если те же задачи решать на C то запутанность кода превысит запутанность синтаксиса современного c++
     
     
  • 4.180, Lex (??), 19:21, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если на сях писать аки на плюсах - тогда да.

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

     
     
  • 5.193, Аноним5487547 (?), 20:23, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошо продуманная абстракция как раз наоборот упрощает дизайн кода. Как пример обычная операция над объектом:
    //в C++
    obj.func(arg1, arg2);
    //в C
    objType_func(ptr_to_obg, arg1, arg2);
     
     
  • 6.238, draw1 (?), 04:06, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Написать короче, да Выглядит красивей Вот только читая такой код ты сначала до... большой текст свёрнут, показать
     
     
  • 7.322, Аноним5487547 (?), 12:59, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это если первый заглянул в код тогда да. Но поработав какое-то время с проектом и познакомившись со всей иерархией классов, получаешь буст к скорости написания/понимания именно благодаря лаконичности и естественности ООП кода.
     
  • 6.251, Lex (??), 08:23, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это ведь именно попытка писания на Сях аки на плюсах, т е к нагромождению ООП и ... большой текст свёрнут, показать
     
     
  • 7.323, Аноним5487547 (?), 12:59, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > попытка "эмуляции" ООП на языке, его не поддерживающем.

    так ведь именно это и есть стиль типичного C фреймворка. Вот пример из GTK:
    void gtk_window_set_default_geometry (GtkWindow *window, gint width, gint height);

     

  • 1.84, Аноним (69), 12:36, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Оу, все фигня. Они добавили reflection в TS А значит можно ожитать их реализации в gcc и clang. А там и метаклассы и генераторы кода...
     
  • 1.96, Аноним (97), 12:55, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Ну все Раст больше не нужен
     
     
  • 2.191, anonymousangler (?), 20:11, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Насмешил (х
     
  • 2.231, Аноним (-), 01:39, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кто ты и твой коммент без раста ?
     
  • 2.276, Аноним (59), 13:46, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как раз из-за C++20 нужен ещё сильнее ;)
     

  • 1.116, Аноним (116), 13:54, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Комитет по раздувательству С++ работает, не покладая рук.
     
  • 1.117, vitalif (ok), 14:00, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Так, стопэ! А корутины-то допилили?

    // Всё остальное в основном накур - да

     
     
  • 2.119, fsb4000 (?), 14:11, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Допилили. И уже поддерживается в текущих компиляторах.

    Смотри табличку: https://en.cppreference.com/w/cpp/compiler_support

     
     
  • 3.134, vitalif (ok), 15:12, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Допилили. И уже поддерживается в текущих компиляторах.
    > Смотри табличку: https://en.cppreference.com/w/cpp/compiler_support

    О, точно, в Gcc допилили. В LLVM не до конца. Маладцы! Это по-моему главная киллерфича C++20. Единственно надо посмотреть какой оверхед от них будет

     
     
  • 4.138, anonymous (??), 15:20, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не допилили, оно в экспериментальном режиме и требует отдельный флаг.
     
     
  • 5.147, fsb4000 (?), 16:13, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В Visual Studio пока требуется отдельный флаг: /await

    Но с версии 16.8(пока доступна лишь Preview) будет работать уже без флага.

     

  • 1.121, Вкусная водочка (ok), 14:22, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Кто хочет выучить современные плюсы, следуйте на learncpp.com 👈
     
  • 1.123, Аноним (123), 14:38, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Общаясь с плюсовиками, понял примерно то что народ пишет на одиннадцатых и посматривает на 14.
    Эти все нововведения нужны наверное 10% разрабов.
    А новые версии плюсов выпускают что бы выпускать.

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

    В результате хорошие дополнения не вводятся из-за ужасного легаси языка.

    Теперь понятно почему стрельнули GOLANG и RUST

     
     
  • 2.132, anonymous (??), 15:10, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.reddit.com/r/cpp/comments/ik7bwt/which_c_version_do_you_use/

    знакомые плюсовики выборка очень плохая.

    И по вашему новые версии выпускают потому что людям скучно, а не то что они пытаются решить какие-то проблемы?

     
     
  • 3.136, Tita_M (ok), 15:15, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >а не то что они пытаются решить какие-то проблемы?

    Ага. Проблемы порождённые предыдущими решениями проблем.

     
  • 2.135, vitalif (ok), 15:13, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > В результате хорошие дополнения не вводятся из-за ужасного легаси языка.

    Вводяцца, лямбды вон ввелись, теперь ещё async/await. Круто же)

    > Теперь понятно почему стрельнули GOLANG и RUST

    ...но и это конечно да, маразма там тоже хватает.

     
  • 2.305, Аноним (296), 23:05, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Общаясь с плюсовиками, понял

    Это та же логика, что "среди моих знакомых никто не голосовал за <кандидата>, значит, за него никто не голосовал".

     
  • 2.317, SJW (?), 11:51, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > плюсы должны быть совместимы с совершенно чудовищными вычислительными машинам с недвоичной логикой.

    There are more than two digits!

     

  • 1.133, Аноним (133), 15:11, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну как, для квантовых вычислений-то С++ уже готов?
     
     
  • 2.143, Аноним (18), 15:47, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Тут всё зависит от middle-end компилятора. Как доработают middle-end, так сразу для всех языков компилятора и заработает, в том числе и для Rust
     
     
  • 3.163, Аноним (87), 17:56, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пытаюсь представить себе квантовые указатели :)
     
     
  • 4.182, Lex (??), 19:27, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Просто достаёшь указатель где-то за пределами массива, вот тебе и квантовый указатель готов.

    С некоторым шансом, обращение по адресу пройдёт даже без вылета.

     
  • 4.235, Ананоним (?), 02:32, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, туфту представить невозможно! Но он привлекателен.
     
  • 2.376, nich (ok), 03:38, 14/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Почти.  Как только UB расширят волновой функцией, будет точно готов.
     

  • 1.144, all_glory_to_the_hypnotoad (ok), 15:47, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Аффтар новости, ты вообще хоть немного понимаешь что переводишь?

    > Возможность лямбда-захвата выражений "*this".

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

    > Классам разрешено использование параметры шаблона без типа.

    В качестве параметра шаблона-значения можно использовать классы для типа, раньше можно было только POD типы. Из-за этого нельзя было делать строковые литералы параметрами шаблонов.

    > Возможность использования диапазонов для инициализации значений переменной в цикле "for"

    Возможность указывать в конструкциях for(...) локальные переменные, которые дальше можно использовать в range части. К возможности использовать диапазоны это вообще не имеет никакого отношения, делать аналоги питоновского range() в range-based for можно было начиная с c++11.

    > Атрибут "[[no_unique_address]]" при котором переменные без данных не занимают места.

    Вообще ничего близкого по смыслу, полная чушь.

    > Поддержка быстрых (immediate) функций, которые могут работать только с константами.

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


    Это совсем адовые ляпы, в половине пунктов вообще не понятно о каком нововведении пишешь.

     
     
  • 2.174, Michael Shigorin (ok), 19:06, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Там под новостью справа есть ссылочка такая: "исправить".
    Спасибо за попытку, но лучше патчи сразу туда и слать.
     
  • 2.196, Аноним (196), 20:37, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Благодарю, а я то думал, что туплю при чтении (давно не юзал плюсы, очень давно).
     
  • 2.199, Аноним (199), 20:58, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это именно что захват *this, комментатор, ты хоть понимаешь что комментируешь?)
    читай док: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0018r3.html
     

  • 1.149, Аноним (149), 16:54, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    та ну нафик... на ассемблере писать стало проще.
     
  • 1.154, Аноним (154), 17:19, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В GCC поддерживают драфты или релизные версии?

    Если драфты, то насколько они уверены в совпадении и откуда у них такая информация?

    Если релизы, то где скачать документацию по этим версиям языка?

     
     
  • 2.241, aa (?), 06:40, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://isocpp.org/std/the-standard
    дальше purchase нужную версию, вводишь данные кредитки и вот оно счасьте в виде пдф
     
     
  • 3.272, user (??), 13:05, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Одна из причин перейти на Rust.
     
     
  • 4.318, Аноним (150), 11:55, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Отсутствие стандарта как такового, единственная реализация компилятора и стандартной библиотеки?
     
     
  • 5.320, Аноним (38), 11:59, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    в случае, когда за этот стандарт надо заплатить туеву хучу бабла, можно считать, что его нет.
     
     
  • 6.332, Andrey (??), 17:51, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Платный доступ к стандартам - устоявшаяся практика, и у ISO, и у ГОСТ.
     
     
  • 7.333, Аноним (38), 18:15, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Порочная практика, спешу заметить. Это во-первых.
    А во-вторых - не по таким же ценам! Ну чего там такого написано на 16.5 тыс. руб.? Зачем нужны стандарты, если для того, чтобы их прочитать даже в электронном виде надо платить туеву хучу денег? Ну и продавали бы печатные копии, а электронные сделали бы общедоступными.
    Кстати, все необходимые мне ГОСТы я находил в свободном доступе. А вот ISOшные стандарты - не все.
     
  • 6.339, Аноним (150), 23:32, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Тебе и незачем за него платить. Он для авторов компиляторов предназначен, а не для тебя.
     
     
  • 7.349, Аноним (38), 04:21, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А, ну то есть обычному пользователю языка, не автору компилятора, стандарт читать необязательно. Достаточно талмуда Страуструпа. Ню-ню.
     
     
  • 8.355, анон (?), 07:55, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Драфт бесплатен, качай-читай - он и нужен программистам и обычным пользователям... текст свёрнут, показать
     
  • 8.371, Аноним (150), 17:58, 11/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Обычному пользователю языка за глаза хватит справочника с цплюсплюс ком или цппр... текст свёрнут, показать
     
  • 6.369, Alex (??), 13:04, 11/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Для тех кто не хочет платить, всегда есть последний пред-релизный драфт, который может отличаться от итогового стандарта только неправильной расстановкой запятых.
     
  • 3.319, Аноним (38), 11:57, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    за 16 508 рублей? Спасибо, не надо нам такого счастья.
     
     
  • 4.326, aa (?), 15:27, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Можно пользоваться драфтом - он бесплатен, разница лишь, что нельзя официально сказать "в соответсвии со стандартом".
    Да и 200 баксов - это не так уж много за формальное описание языка - люди всё-таки работали.
     
     
  • 5.328, Аноним (-), 16:36, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    За многотомники по "альтернативной истории" тоже платить? Аффтар строчил, понимаешь ли.
     
  • 5.329, Аноним (38), 16:41, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да нет, многовато, я за ипотеку плачу 20, а тут талмуд - 16. Пускай сами его читают. 1000 рублей - нормально.
    Но это ладно. Я вот видел исошный же стандарт на 30 (30, Карл!) страниц, который ISO же продает за 11 000 рублей. Это ли не верх о*уения зажравшихся капитализдов?
     
  • 2.290, Аноним (289), 19:43, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    на гитхабе лежат исходники стандарта.
     

  • 1.156, Аноним (-), 17:27, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ненужно! Ведь уже есть rust !
     
     
  • 2.195, Аноним (195), 20:28, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Раст уже деприкейтед, команду разогнали. Пора переходить на С++
     
     
  • 3.275, Аноним (59), 13:44, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Что за глупость, Раст наконец свой фонд организовывает
     
  • 3.283, Аноним (283), 16:16, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Уже нет - проехали. Года 4 назад ещё можно было гадать взлетит Rust или нет. А теперь it's here to stay. Я понимаю что многих здесь он раздражает - но жизнь вообще жестокая штука...
     
  • 2.286, trdd (?), 18:46, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В том то и дело что в раст почти ничего нет.
     
     
  • 3.325, Аноним (38), 15:24, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Но при этом есть все необходимое. А вот в плюсах что-то уж очень много всего по сравнению с 98 и 03 стандартами. Слишком много.
     
     
  • 4.341, СССР (?), 00:39, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ну не используй то что тебе не нужно  )
     
     
  • 5.348, Аноним (38), 04:19, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот не нужен мне С++ - я его и не использую, есть языки попроще и поинтереснее))
     
     
  • 6.353, СССР (?), 07:00, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    да и вообще жизнь без компьютера поинтереснее и попроще )).
    А вообще это лично вами, в силу определенных причин, было принято решение поискать ченть попроще, в результате оно и оказалось интереснее что хоть какието вещи лично вы можете сваять ).
    Что не прав? )
     
     
  • 7.356, Аноним (38), 09:38, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, не правы. Это решение приняли за меня, предложив работу на Erlang. А потом я уже расхотел возвращаться на плюсы, во-первых, потому что понял убогость и их и ООП, а во-вторых, потому что не хотел осваивать новый стандарт.
     
     
  • 8.360, СССР (?), 23:12, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ну если вам платят за другой язык то почему же и нет но это же совсем не то ко... текст свёрнут, показать
     

  • 1.157, Аноним (157), 17:37, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Боже ш мой, сколько бреда!!! Неужели это кому-нибудь нужно и кто-то пользуется этим?! В C++11/14 ещё были полезные нововведения, но в 17/20 - безсмыслица какая-то уже. В рефлексии как не было так и нет, токмо Qt-м и спасаемся.
     
     
  • 2.202, Аноним (202), 21:16, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Для рефлексии в этом стандарте TS сделали, надеюсь в С++23 уже будет (а в компиляторах еще раньше).
     
  • 2.311, Аноним (311), 00:43, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > в 17/20 - безсмыслица какая-то уже

    Ну почему же. В С++17 среди прочего ввели std::filesystem. А то всё приходилось С-функциями каталоги обходить. std:optional, std::string_view - тоже полезные штуки. Copy elision - тоже хорошо. В С++20 тоже много хорошего.

     

  • 1.167, Рева RarogCmex Денис (?), 18:25, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Выбирая между C++ и Rust стоит выбрать Haskell.
     
     
  • 2.178, Вкусная водочка (ok), 19:17, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А как же JabbaScript Everywhere? 🌝
     
  • 2.299, Аноним (158), 21:42, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    сплюснутые и ржавые начали гонку сложности к невозможности изучения языка.
     
  • 2.372, Sgt. Gram (?), 18:30, 11/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Используя деепричастный оборот, стоит обособлять его запятыми.
     

  • 1.181, Ананоним (?), 19:22, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Кажется приближается смерть плюсов от ожирения. Язык C выглядит всё боле привлекательным из-за относительной своей простоты.
     
     
  • 2.194, Аноним (195), 20:26, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ассемблер вот где все просто. Зачем все эти абстракции когда есть посконный гоуту
     
     
  • 3.230, Аноним (-), 01:37, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нету там никаких гоуту, goto: есть в сях
     
     
  • 4.242, aa (?), 06:42, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    тоже мне проблема
    #define goto JMP
     

  • 1.188, Аноним (188), 19:54, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ну что, теперь можно написать еще 100500 библиотек для работы со строками?
     
  • 1.192, Аноним (192), 20:15, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Предсмертные конвульсии.
     
  • 1.210, Аноним (311), 21:40, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Сколько высокомерных ниасиляторов в комментах, просто ужас
     
     
  • 2.217, Аноним (199), 22:31, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зачем осиливать^W насиловать труп?
     
     
  • 3.335, Аноним (311), 20:19, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Что осиливать, а что нет - каждый решает сам. Но высокомерно выпячивать своё неосиляторство - как-то тупо. Если чего-то не знаешь - ну нормально, просто сиди себе тихо и скромно со своим незнанием. Но высокомерные разговоры в духе "я этого не понимаю, значит это говно" - показывают тупость автора изречения, а не недостатки предмета обсуждения.
     
  • 2.302, Аноним (302), 22:14, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как минимум значительно больше представителей мазохизма
     

  • 1.218, Аноним (218), 22:38, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Концепты конечно мощнее, чем type constraints в свифте или шарпе, но зачем так усложнять все таки...
     
  • 1.222, Аноним (222), 23:02, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Самый читаемый код на pascal
     
     
  • 2.223, Аноним (218), 23:14, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нет. На J.
     
     
  • 3.224, Аноним (222), 23:26, 07/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ты уверен?

    result =. name1 verb2 5

     
  • 2.229, anonimous (?), 01:29, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Там тоже уже подзапутали. Но где то до уровня ранних плюсов, которые еще можно читать было

    https://castle-engine.io/modern_pascal_introduction_russian.html

     

  • 1.225, Неа (?), 23:43, 07/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нахер надо это все. Все это в других языках делается проще и так же быстро работает. А если надо ещё быстрее, то C или C++ 11.
     
     
  • 2.274, Аноним (59), 13:43, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Какие, например?
    Языки проще обычно заметно тормознее
     
     
  • 3.298, Аноним (158), 21:40, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    "заметно" - это сколько долей процента?
     
     
  • 4.377, Аноним (59), 05:10, 19/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну сравни скорость C++ и Питона
     

  • 1.227, None (??), 01:21, 08/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ничего себе, модули завезли. Эдак они и от препроцессора вовсе откажутся.
     
     
  • 2.254, Кэп (?), 08:58, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, а потом вообще морфируют в сишарп
     
  • 2.297, Аноним (158), 21:38, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    скоро до уровня паскаля подтянутся :)
     

  • 1.236, draw1 (?), 02:45, 08/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Поддержка синтаксиса инициализации в стиле Си...

    Да неужели наконец-то плюсовики смогут компилировать нормальный Си-шный код? Хотел сказать "не прошло и 20-ти лет"... Но ведь прошло... В Си такая инициализация есть с С99...

    Лень смотреть, а Си-шную аналогичную инициализацию массивов и тоже поддерживает?

     
     
  • 2.271, Аноним (271), 12:49, 08/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не смогут. Инициализация в "стиле С" с С несовместима. Там свой синтаксис.

     

  • 1.277, Андрей (??), 14:23, 08/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    срр для срр
    уже сделали бы нормальный язык, без накруток. в компиляторе ещё возможно искать ошибки?)
    даёшь dlang без gc!
     
  • 1.282, Аноним (-), 16:09, 08/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Си плюс-плюсники зашёл тут к вам, растаманы в вашем треде успели посрать?
     
  • 1.301, Аноним (302), 22:11, 08/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Все задачи должны решаться в едином стиле. Но это совсем не про C++, в котором есть шаблоны, constexpr, теперь уже концепции, и я боюсь представить, какая же будет интроспекция... С каждым стандартом в язык добавляются новые сущности с новым синтаксисом. Никакого единообразия. Из-за наследия комитет воротит костыли, которые в свою очередь заставляют воротить новые костыли. Такое впихивание не впихиваемого уродует язык. Уже сейчас на освоение языка нужны годы. А сколько ошибок будет допущено при разработке сложно даже представить. В масштабах мира это огромные потери человекочасов. И только из-за того, что нужно сохранять совместимость. Супер аргумент. Все радуются новому стандарту. Но с ним С++ стал только уродливее, и фактически катится в тупик.
     
     
  • 2.310, Аноним (311), 00:29, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Из-за наследия комитет воротит костыли, которые в свою очередь заставляют воротить новые костыли. Такое впихивание не впихиваемого уродует язык.

    Что за ересь? Наоборот, синтаксис становится проще, понятнее и красивее.

    С++03:



    const std::vector<int>::const_iterator end = vec.end();
    for (std::vector<int>::const_iterator it = vec.begin(); it != end; ++it) {
        int n = *it;
        ...
    }


    C++11:



    for (int n: vec) {
        ...
    }



     
     
  • 3.324, Аноним (302), 13:12, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Первый вариант никуда же не делся! Теперь надо знать оба. Ничего проще не стало. Это притянутый за уши, но всё же как раз пример усложнения языка.
     
     
  • 4.331, Leo90 (?), 17:21, 09/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    это к вопросу о том, что если можно сделать больше чем двумя способами, то усложнение. но я с таким не согласен. если что то можно написать и просто и сложно, это нормально. плохо когда нельзя просто.

    к тому же в некотрых ситуация более трудный ситаксис имеет больше возможностей (например в цикле есть доступ к самому итератору в первом варианте). выбор дает больше возможностей и заставляет выбирать (думать то есть).

     
     
  • 5.357, Аноним (311), 15:12, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > выбор дает больше возможностей и заставляет выбирать (думать то есть)

    Теоретически да, но на практике обычно новый вариант очевидно лучше (проще, красивее, выразительнее) старого. Редкие случаи, когда не так - не делают погоды.

     
  • 4.342, СССР (?), 00:50, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ну и что,  вот  я тоже люблю испльзовать патерны по старинке, тут вопрос привычки. С++ дают такую возможность. Я могу на С++ использовать структуры с функциями, получаем компактные объекты. Могу в кутях легко и просто использовать навороченные классы для работы с БД, 3д и тд.. Программист сам выбирает что он хочет - так и пишет. С++ это от си к абстракциям (да где то не с первого раза понимаемым конструкциям). С++ это свобода.
     
  • 2.343, Ordu (ok), 01:57, 10/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Но с ним С++ стал только уродливее, и фактически катится в тупик.

    А у него выбора нет другого, кроме как катиться в тупик. Если забить на обратную совместимость, то получится история типа перехода python'а со 2 на 3 версию, только ещё хуже. Гораздо-гораздо хуже.

     

  • 1.303, Аноним (294), 22:26, 08/09/2020 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –2 +/
     
  • 1.307, Аноним (306), 23:18, 08/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Куда они так торопятся? И где нормальная литература по современным C++?
     
  • 1.308, snmp agent (?), 23:29, 08/09/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А чего в списке новшеств ranges не упомянуты?
    https://www.modernescpp.com/index.php/c-20-the-ranges-library
    Или я проглядел?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру