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

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

Как работают встроенные переменные?

На собрании стандартов Oulu ISO С++ 2016 года предложение по стандарту Inline Variables было проголосовано в С++ 17 комитетом по стандартам. В условиях неспециалиста, что такое встроенные переменные, как они работают и для чего они полезны? Как объя...
26 июн. '16 в 21:39
3

std:: lock_guard или std:: scoped_lock?

В С++ 17 был введен новый класс блокировки std::scoped_lock. Судя по документации, она похожа на уже существующий класс std::lock_guard. Какая разница и когда я должен его использовать?
25 мар. '17 в 17:29
4

Экспериментальная:: ошибка компоновщика файловой системы

Я пытаюсь использовать новые функции С++ 1z на самом деле в главе разработки в gcc 6.0. Если я попробую этот небольшой пример: #include <iostream> #include <experimental/filesystem> namespace fs = std::experimental::filesystem; int main...
15 окт. '15 в 13:28
3

Как эффективно получить `string_view` для подстроки` std::string `

Используя http://en.cppreference.com/w/cpp/string/basic_string_view в качестве ссылки, я не вижу возможности сделать это более элегантно: std::string s = "hello world!"; std::string_view v = s; v = v.substr(6, 5); // "world" Хуже того, наивный под...
04 сент. '17 в 7:33
5

Почему структурированные привязки С++ 17 не используют {}?

Я нашел исходное предложение для * С++ структурированных привязок здесь. Он предлагает способ легко связывать несколько возвращаемых значений, то есть: auto {a, b} = minmax(data); Но теперь я вижу, что каждый указывает на синтаксис предложения С++...
30 окт. '16 в 19:57
3

Преимущества авто в параметрах шаблона в С++ 17

Каковы преимущества auto в параметрах шаблона, которые будут (возможно) введены с С++ 17? Является ли это просто естественным расширением auto, когда я хочу создать экземпляр кода шаблона? auto v1 = constant<5>; // v1 == 5, decltype(v1...
25 июн. '16 в 9:19
1

Какая разница между статическими константными и статическими встроенными переменными в С++ 17?

С С++ 17 мы получаем встроенные переменные. Одним из способов их использования является определение константных полей в классах. Так в чем же разница между этими двумя постоянными определениями: class MyClass { static constexpr int myFirstVar ...
19 июл. '17 в 7:11
1

Стандарт С++ гарантирует, что единообразная инициализация исключает безопасность?

#include <iostream> using namespace std; struct A { A() { cout << "A" << endl; } ~A() { cout << "~A" << endl; } }; A Ok() { return {}; } A NotOk() { throw "NotOk"; } struct B { A a1; A a2; }; void f(...
28 апр. '17 в 12:15
2

Подготовка к std:: iterator Будучи устаревшим

21 марта st комитет по стандартизации проголосовал за утверждение устаревшего std::iterator, предложенного в P0174: Длинная последовательность аргументов void гораздо менее понятна читателю, чем просто предоставление ожидаемого typedef в самом о...
04 мая '16 в 15:15
2

Является ли "enum class" классом в С++?

Я читал об объявлении перечисления в С++, используя cppreference. Затем я сделал класс Enum и проверял, является ли это типом класса или не использует std::is_class. #include <iostream> enum class Enum { red = 1, blue, green }; int ...
25 сент. '17 в 9:10
4

Почему эта переменная undefined extern "не приводит к ошибке компоновщика в С++ 17?

Я скомпилировал и запустил следующую программу в компиляторе С++ 17 (Coliru). В программе я объявила переменную extern, но не определила. Однако компилятор не дает ошибки компоновщика. #include <iostream> extern int i; // Only declarati...
11 июл. '17 в 7:21
5

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

У меня есть следующий фрагмент кода: template <typename, typename> struct AAA{}; template<typename ...Args> void f(AAA<Args...> *) {} int main() { f<int, int>(nullptr); } Этот код приводит к ошибке компиляции. При ком...
26 июл. '17 в 5:56
1

Является ли состояние метапрограммирования неупорядоченным (пока)?

Одно из моих самых любимых/злых изобретений, с которыми я столкнулся, - это счетчик constexpr, также известный как метапрограммирование. Как упоминалось в сообщении, это кажется законным в С++ 14, и мне интересно, что-то изменилось с С++ 17? Ниже пр...
30 мая '17 в 16:40
1

Могут ли параметры типа non-type в С++ 17 быть decltype (auto)?

Я обнаружил, что gcc и clang позволяют использовать decltype(auto) в предложении типа параметра типа non-type. Например:. template <decltype(auto)> struct X {}; int foo ; int main() { X<(foo)> x; static_cast<void>(x); } ...
03 сент. '17 в 19:48
2

Перегрузка нескольких объектов функций по ссылке

В С++ 17 тривиально реализовать функцию overload(fs...), которая при любом количестве аргументов fs..., удовлетворяющих FunctionObject возвращает новый объект функции, который ведет себя как перегрузка fs.... Пример: template <typename... Ts>...
23 мар. '17 в 21:16