Результаты поиска по запросу "c++17"

2 ответа

 теперь плохо сформирован без соответствующего исправления частичного упорядочения.

ня я читал страницу поддержки C ++ 17 clang. Я заметил кое-что странное. ОсобенностьСоответствие параметров шаблона шаблона совместимым аргументам ( P0522R0 [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0522r0.html]) помечен как ...

2 ответа

И «это дает ожидаемый результат» - не повод думать, что это определенное поведение. Возвращение того, что я ожидаю, является одним из возможных результатов неопределенного поведения.

аю этоответ [https://stackoverflow.com/a/4176333/6935629]о неопределенном поведении, где я увидел следующее утверждение: ++++++i; // UB, parsed as (++(++(++i)))Я не думаю, что это неопределенное поведение. У меня есть сомнения, действительно ли ...

1 ответ

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

роса: Правильно ли сформирован следующий код с определенным поведением? Есть ли возможная реализация C ++, в которой он может утверждать? Код (c ++ 11 и выше): #include <cassert> #include <utility> #include <ciso646> template<class T> ...

ТОП публикаций

1 ответ

мы должны иметь возможность использовать его в качестве параметра шаблона.

аяКак мне написать лямбда-выражение, которое выглядит как метод? [https://stackoverflow.com/questions/47604606/how-do-i-write-a-lambda-expression-that-looks-like-a-method] Я попытался превратить безвоздушную лямбду в указатель на ...

3 ответа

это означает, что OP хочет получить ответ, подкрепленный ссылками на стандарт ISO C ++. Не имеет значения, что он компилируется (на самом деле многие нарушения ODR компилируются просто отлично).

отрим этот пример изcppreference [http://en.cppreference.com/w/cpp/language/definition]: struct S { static const int x = 1; }; void f() { &S::x; } // discarded-value expression does not odr-use S::xЯ согласен, что&S::x этовыражение ...

3 ответа

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

чий проект стандарта N4659говорит: [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4659.pdf] [Basic.compound] Если два объекта являются взаимозаменяемыми по указателю, то они имеют одинаковый адрес а затем отмечает, что Объект массива ...

1 ответ

 это действительно сложно и довольно сложно, так как в игру вступает множество мощных хитростей мета-программирования. Этот ответ может охватывать только верхушку айсберга :-)

трю наstd:variant/std::visit Док здесь: http://en.cppreference.com/w/cpp/utility/variant/visit [http://en.cppreference.com/w/cpp/utility/variant/visit]а также погуглил много, пытаясь понять магию позадиstd::visit а такжеstd::variant. Итак, мой ...

1 ответ

@underscore_d - Конечно. Имена будут выдумывать это меньше, чем объекты.

ел бы использовать структурированные привязки C ++ 17 для присвоения значения переменной члена класса, например: #include <cmath> #include <iostream> struct Result { double value; bool error; }; Result square_root(double input) { return ...

1 ответ

Хорошо, я понял, спасибо.

вопрос следует за этимодин [https://stackoverflow.com/questions/48188737/is-pointer-arithmetic-on-inactive-member-of-a-union-ub] Давайте рассмотрим этот пример кода: struct sso { union{ struct { char* ptr; char size_r[8]; } large_str; ...

1 ответ

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

сно этомуответ [https://stackoverflow.com/a/48062531/5632316], начиная с C ++ 17, даже если указатель имеет правильный адрес и разыменование правильного типа, это может вызватьнеопределенное поведение. alignas(int) unsigned char ...