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

C ++ 17 - это название стандарта C ++, утвержденного в 2017 году. Он основывается на предыдущем стандарте C ++ 14, улучшении основного языка и стандартной библиотеки и добавлении нескольких новых языковых функций.
3
ответа

(v) на самом деле (* & v) с тех пор, как?

Могут ли гуру стандартов на C ++ просветить меня: С какой стандартной версией C ++ эта команда не сработала, потому что (v) , похоже, эквивалентно (*&v) ? т.е. например код: #define DEC(V) ( ((V)>0)? ((V)-=1) : 0 ) ...{......
задан 22.06.2017 в 09:41
1
ответ

Полезность std :: make_pair и std :: make_tuple в C ++ 1z

По моему мнению, единственная причина существования std::make_pair и std::make_tuple заключается в том, что вам не нужно писать типы самостоятельно, поскольку они автоматически выводятся. В C ++ 1z мы имеем вывод аргумента шаблона для...
задан 09.05.2017 в 18:39
3
ответа

Lambda как аргумент по умолчанию не работает

Я получаю сообщение об ошибке с последними версиями clang и gcc с этим кодом: int main() { auto lambda = [] (auto = [] {}) {}; lambda(); } Clang дает ошибку: prog.cc: In function 'int main()': prog.cc:3:12: error: no match fo...
задан 14.05.2015 в 16:38
1
ответ

C ++ 1z Почему бы не удалить орграфы вместе с триграфами?

C ++ 1z удалит триграфы. IBM решительно выступала против этого ( здесь и here ), поэтому, кажется, есть аргументы для обеих сторон удаления / удаления. Но поскольку было принято решение удалить триграфы, зачем оставлять орграфы? Я не вижу ни...
задан 22.12.2014 в 12:22
1
ответ

Смогу ли я объявить constexpr lambda внутри параметра шаблона?

Я знаю, что это как открыть коробку Пандоры, но она не перестает беспокоить меня. Рассмотрим простой пример: #include <type_traits> template <auto> struct Foo: std::false_type { }; template <> struct Foo<[](){return 1;}...
задан 11.06.2017 в 17:36
2
ответа

std :: stable_sort: Как выбрать алгоритм, оптимизированный для памяти, вместо алгоритма, оптимизированного по времени?

Я хочу использовать std::stable_sort . Сложность алгоритма определяется как O(N·log^2(N)), where N = std::distance(first, last) applications of cmp. If additional memory is available, then the complexity is O(N·log(N)). http://en.cppreferen...
задан 06.07.2017 в 13:22
3
ответа

Устаревшая замена codecvt заголовка

Немного переднего плана: моя задача потребовала конвертировать XML-файл UTF-8 в UTF-16 (с правильным заголовком, конечно). И поэтому я обыскал обычные способы конвертации UTF-8 в UTF-16 и выяснил, что нужно использовать шаблоны из <codecvt&g...
задан 22.03.2017 в 09:32
3
ответа

Почему невозможно свернуть выражения в постоянном выражении?

Рассмотрим следующий код: template<int value> constexpr int foo = value; template<typename... Ts> constexpr int sum(Ts... args) { return foo<(args + ...)>; } int main() { static_assert(sum(10, 1) == 11); } clan...
задан 01.08.2017 в 08:51
1
ответ

зачем объявлять конструкторы constrexpr для классов с нетривиальными деструкторами (например, unique_ptr, std :: variant)

Насколько я понимаю (по крайней мере, для c++14 ), деструктор не может быть constexpr , если он не является тривиальным (неявным или =default ). В чем смысл объявления конструкторов constexpr для структур с нетривиальными деструкторами?...
задан 10.06.2015 в 21:57
1
ответ

Почему может быть инициализировано строго типизированное перечисление с целым числом без static_cast?

enum class E {}; int main() { E e1{ 0 }; // ok E e2 = 0; // not ok // error : cannot initialize a variable of // type 'E' with an rvalue of type 'int' } Мой компилятор clang 4.0 с опцией -std=c++1z . Ожидается, что...
задан 15.03.2017 в 10:47