Результаты поиска по запросу "language-lawyer"

4 ответа

@bodov: Но это не класс C ++, это класс G ++, поэтому к нему не нужно применять правила C ++. Особо отметьте, что вы не можете иметь массив этого типа или выполнять математические операции с его указателями, поэтому обычное рассуждение о том, что размер не может быть равен нулю, также не выполняется.

старая запись, в которой просят конструкцию, для которойsizeof вернется0, Есть несколько хороших ответов от пользователей с высокой репутацией, которые утверждают, что по стандарту ни один тип или переменная не могут иметь размер 0. И я согласен ...

1 ответ

gcc.gnu.org/bugzilla/show_bug.cgi?id=65752

у это неопределенное поведение? struct s { const int id; // <-- const member s(int id): id(id) {} s& operator =(const s& m) { return *new(this) s(m); // <-- undefined behavior? } };(Цитата из стандарта была бы хороша). Этот вопрос возник изэтот ...

1 ответ

@PeterCordes Я полностью согласен .. Безопасно использовать односторонний барьерный подход для описания того, как все работает. Это также (по крайней мере, для меня) самый простой способ визуализации вещей.

ели памяти C ++ существует общий порядок для всех загрузок и хранилищ всех последовательно согласованных операций. Мне интересно, как это взаимодействует с операциями, которые имеют другие упорядочения памяти, которые упорядочены до / после ...

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

1 ответ

 в темной аллее.

ет ли стандарт C, чтобы размер массиваn элементы будутn раз размер элемента, либо явным утверждением или строгим логическим выводом из его требований? Например, могint (*x)[5] = malloc(5 * sizeof **x); не удается запросить достаточно места для ...

2 ответа

 где мясо и картошка в

вопрос касается определенности или иного назначения неинициализированной автоматической переменной другой переменной того же типа. Рассмотреть возможность typedef struct { int s1; int s2; } Foo; typedef union { int u1; Foo u2; } Bar; int main() ...

5 ответов

Действительно ли `sizeof` * * оценивается как` std :: size_t`? Может это?

Возьмите следующий стандартный отрывок: [C++11: 5.3.3/6]: Результатsizeof а такжеsizeof... константа типаstd::size_t. [ Запись: std::size_t определяется в стандартном заголовке<cstddef> (18.2).—Конечная записка] В настоящее время: [C++11: ...

2 ответа

Если я что-то упустил, gcc и clang здесь верны.

ющий код принят GCC 7.2 и clang 5.0.0, но отклонен Microsoft VS 2017 15.5.0 Preview 5 и компилятором 19 Intel C ++: struct S { }; constexpr int f(S) { return 0; } int main() { auto lambda = [](auto x) { constexpr int e = f(x); }; lambda(S{}); ...

2 ответа

) и обратно к исходному типу возвращает исходное значение указателя. - конец примечания]

ли (семантическая) разница между возвращаемым значением размещения new и приведенным значением его операнда? struct Foo { ... }; char buffer[...]; Foo *a = new(buffer) Foo; Foo *b = reinterpret_cast<Foo *>(buffer);Есть лиa а такжеb чем-то ...

1 ответ

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

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

1 ответ

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

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