Вопросы с тегом 'c++1z'

С++ 17 - это текущий стандарт С++, который появляется после С++ 14.
1

Каковы новые возможности в С++ 17?

С++ 17 теперь полностью завершена, поэтому вряд ли произойдут большие изменения. Сотни предложений были выдвинуты для С++ 17. Какая из этих функций была добавлена ​​в С++ в С++ 17? При использовании компилятора С++, который поддерживает "С++ 1z", к...
27 июн. '16 в 18:06
30

перечисление в строку в современном С++ 11/С++ 14/С++ 17 и будущем С++ 20

В отличие от всех других подобных вопросов, этот вопрос касается использования новых функций C++. 2008 c Есть ли простой способ преобразовать перечисление C++ в строку? 2008 c Простой способ использовать переменные типов enum в виде строки в C? 2008...
03 мар. '15 в 10:05
1

Какова цель std:: write?

P0137 представляет шаблон функции std::launder и вносит множество изменений в стандарт в разделах, касающихся объединений, времени жизни и указателей. Какую проблему решает эта статья? Какие изменения в языке я должен знать? А что мы launder?
08 сент. '16 в 4:16
5

Как именно std :: string_view быстрее, чем const std :: string &?

std::string_view сделал это на С++ 17, и рекомендуется использовать его вместо const std::string&. Одной из причин является производительность. Может кто-нибудь объяснить, насколько точно std::string_view будет/будет быстрее, чем const std:...
19 окт. '16 в 9:55
3

Что сделало я = я ++ + 1; юридический в С++ 17?

Прежде чем вы начнете вопить поведение undefined, это явно указано в N4659 (С++ 17) i = i++ + 1; // the value of i is incremented Тем не менее в N3337 (С++ 11) i = i++ + 1; // the behavior is undefined Что изменилось? Из тог...
07 дек. '17 в 19:16
4

Являются ли экспериментальные возможности современного С++ надежными для долгосрочных проектов?

У меня есть проект, который в настоящее время использует С++ 11/14, но для него требуется нечто вроде std::filesystem, которое доступно только на С++ 17, и поэтому у меня нет возможности его использовать. Я вижу, однако, что он доступен в моем текущ...
10 апр. '17 в 8:41
1

Почему GCC предупреждает меня о провале, даже когда я использую [[fallthrough]]?

В следующем фрагменте кода я использую стандартный атрибут [[fallthrough]] из С++ 1z для документирования того, что требуется прохождение: #include <iostream> int main() { switch (0) { case 0: std::cout << "a\n";...
11 июл. '17 в 6:16
3

Каковы гарантии порядка оценки, введенные С++ 17?

Каковы последствия использования утвержденного порядка C++ 17 порядка оценки (P0145) для типичного кода C++? Что это меняет в таких вещах, как i=1; f(i++, i) а также std::cout << f() << f() << f() ; или же f(g(),h(),j());
21 июл. '16 в 10:21
1

Как работает гарантированное копирование?

На собрании стандартов Oulu ISO С++ 2016 года предложение, называемое Гарантированное копирование текста через упрощенные категории значений, было проголосовано на С++ 17 комитета по стандартизации. Как точно работает гарантированное копирование? Ох...
26 июн. '16 в 21:23
18

Как вы реализуете Coroutines в С++

Я сомневаюсь, что это можно сделать портативно, но есть ли там какие-то решения? Я думаю, что это можно сделать, создав альтернативный стек и перезапустив SP, BP и IP для ввода функции и получив доступ к сохранению IP и восстановлению SP + BP. Дестру...
23 сент. '08 в 15:31
2

Как новый диапазон для цикла в С++ 17 помогает диапазонам TS?

Комитет изменил цикл на основе диапазона: С++ 11: { auto && __range = range_expression ; for (auto __begin = begin_expr, __end = end_expr; __begin != __end; ++__begin) { range_declaration = *__begin; loop_sta...
24 авг. '16 в 7:46
4

Почему построение std:: optional <int> дороже, чем std:: pair <int, bool>?

Рассмотрим эти два подхода, которые могут представлять "необязательный int": using std_optional_int = std::optional<int>; using my_optional_int = std::pair<int, bool>; Учитывая эти две функции... auto get_std_optional_int() -> std...
03 окт. '17 в 11:55
2

Что такое руководства по вычитанию шаблонов и когда мы должны их использовать?

В стандарте С++ 17 представлены "руководства по вычитанию шаблонов". Я понимаю, что они как-то связаны с выводом аргумента нового шаблона для конструкторов, представленным в этой версии стандарта, но я еще не видел простого, часто заданного в FAQ об...
03 дек. '16 в 19:35
2

Изменены правила для защищенных конструкторов в С++ 17?

У меня есть этот тестовый пример: struct A{ protected: A(){} }; struct B: A{}; struct C: A{ C(){} }; struct D: A{ D() = default; }; int main(){ (void)B{}; (void)C{}; (void)D{}; } Оба gcc и clang компилируют его в режиме С++ 11 и С++ 1...
05 дек. '17 в 14:33
2

reinterpret_cast, создающий тривиальный конструктивный объект по умолчанию

cppreference & dagger; заявляет, что: Объекты с тривиальными конструкторами по умолчанию могут быть созданы с помощью reinterpret_cast на любом подходящем выровненном хранилище, например. на память, выделенную с помощью std::malloc. Это оз...
29 нояб. '16 в 18:48