Результаты поиска по запросу "c++17"
зачем гадать, если можно заглянуть в шапку. я многому научился (плохо), читая заголовки стандартной библиотеки. Это зависит от реализации, конечно
н классаstd::variant представляет типобезопасный союз. Экземплярstd::variant в любой момент времени либо содержит значение одного из его альтернативных типов, либо он не имеет значения. sizeof(std::variant<float, int32_t, double>) == 16Но если ...
Используйте это так:
ользую VS 15.3, который поддерживает интегрированный CMake 3.8. Как я могу ориентироваться на C ++ 17 без написания флагов для каждого конкретного компилятора? Мои текущие глобальные настройки не работают: # ...
Скорее всего, это будет еще одна ошибка в реализации GCC P0135.
вая следующий код: #include <iostream> #include <optional> struct foo { explicit operator std::optional<int>() { return std::optional<int>( 1 ); } explicit operator int() { return 0; } }; int main() { foo my_foo; std::optional<int> my_opt( ...
оба компилятора верны.
аружил, что gcc и clang позволяют использоватьdecltype(auto) в предложении типа параметра шаблона нетипичного типа. Например.: template <decltype(auto)> struct X {}; int foo ; int main() { X<(foo)> x; static_cast<void>(x); }[живое демо ...
Я полностью согласен с вами по поводу отсутствия примера на странице cppreference. Вот мой дубль:
елstd::result_of осуждается в C ++ 17. В чем причинаstd::result_of устарел в C ++ 17?Также я хотел бы знать разницу междуstd::result_of а такжеstd::invoke_result.
Не мое отрицательное мнение, кстати.
тся ли правильными несколько специализаций шаблонов классов, если каждая из них отличается только между шаблонами, включающими параметры шаблона, в не выводимых контекстах? Типичный примерstd::void_t использует его для определения черты, ...
если будет неудачная вставка, пары не будут созданы, что повышает производительность
+ 17std::map [http://en.cppreference.com/w/cpp/container/map]а также std::unordered_map [http://en.cppreference.com/w/cpp/container/unordered_map] получил новый шаблон ...
@Julius: я понимаю, что вы имеете в виду. Я могу привести и другие примеры, которые GCC, похоже, тоже допускает. Я склонен сказать, что они все еще не соответствуют требованиям, о которых я упоминал. Похоже, что существует некоторое противоречие между этим правилом и правилом, определяющим основное константное выражение, которое допускает ссылочный тип, если оно «имеет предшествующую инициализацию и [...] is инициализируется постоянным выражением». Правило, которое я цитировал, должно иметь приоритет.
вопрос кажется связанным ссуществующий [https://stackoverflow.com/questions/43745569], но я не понимаю "портативный обходной путь", представленный вответ там [https://stackoverflow.com/questions/43745569/#43748514](с привлечениемconst auto this_ ...
@ TomAranda Звучит как ответ для меня.
отрим следующие утверждения о разложении пути, где каждая локальная переменная, например,stem имеет очевидную инициализацию, напримерauto stem = path.stem() — assert(root_path == root_name / root_directory); assert(path == root_name ...
), но разные компиляторы должны иметь возможность надежно договариваться друг с другом.
отрим эти два подхода, которые могут представлятьint«: using std_optional_int = std::optional<int>; using my_optional_int = std::pair<int, bool>;Учитывая эти две функции ... auto get_std_optional_int() -> std_optional_int { return {42}; } ...