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

0 ответов

Я думаю, что xskxzr отвечает на мой вопрос более прямо и четко на человеческом языке, в отличие от загадочного стандартного текста, поэтому я приму его ответ. Тем не менее, ваш ответ вместе с обсуждением в разделе комментариев очень полезен, что вполне заслуживает голосования :)

refдо C ++ 17 верно следующее: [http://en.cppreference.com/w/cpp/memory/shared_ptr/make_shared]код такой как может вызвать утечку памяти, еслиf(std::shared_ptr<int>(new int(42)), g()) вызывается послеg и бросает исключение, в то время какnew ...

1 ответ

Я буду считать, что стандарт не может быть явным и ясным по этому поводу.

1 [N1570] 5.2.4.2.2 9 гласит: За исключением присваивания и приведения…, значения, полученные операторами с плавающими операндами, и значениями, подлежащими обычному арифметическому преобразованию и плавающим константам, оцениваются в формате, ...

1 ответ

 для MSVC) может использоваться для отключения языковых расширений с ограниченным успехом.

от вопрос уже есть ответ здесь: Ошибка компиляции при использовании члена пользовательского литерала [/questions/38091427/compile-error-when-using-a-member-of-a-user-defined-literal] 1 ответНачиная с C ++ 11 стало возможным ...

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

1 ответ

потому что он объявлен как дефолт, а не объявлен и затем определен как дефолт. Таким образом, применим второй пункт [dcl.init] / 7, объект инициализируется нулями, после чего следует (не) вызов конструктора (по умолчанию), который ничего не делает.

ботай здесь я понимаю, что фактически ноль инициализируетstd::atomic<T> a{}, Я всегда так думал и практически использовал его доaэто, Прежде чем объяснить мое понимание этого, я хочу показать, что, по крайней мере, gcc и clang делают это на ...

4 ответа

 быть полезным, это не так. Как говорит Rakete1111, вы сосредотачиваетесь на том аспекте, который OP вообще не заботился.

е знаем членов, указанныхprotected из базового класса можно получить доступ только из собственного экземпляра производного класса. Это особенность стандарта, и она неоднократно обсуждалась при переполнении стека: Невозможно получить доступ к ...

3 ответа

@ МЧ, я исправлюсь! И нет, не gcc, даже не двоичный IEEE-754. десятичная версия, 192 бит.

я возник интересный вопрос (я задаю его сам, читая сырой кусок кода). Давайте посмотрим на выражение: double a = c*d*e*2/3*f;где c, d, e, f - инициализированные переменные типаdouble, Стандартная гарантия, что это будет рассматриваться ...

1 ответ

 работает отлично.

ющий код компилируется в Clang, но не в GCC: template<typename T> struct Widget { template<typename U> void foo(U) { } template<> void foo(int*) { } };Согласно стандарту C ++ ([temp.expl.spec], пункт 2): Явная специализация может быть объявлена ...

6 ответов

? Разве это не разыменование нулевого указателя, что, в свою очередь, означает неопределенное поведение? Вам удобно полагать, что каждая реализация C, с которой будет работать ваш код, будет выполнять что-то разумное?

стандартное определение для основной программы: int main(int argc, char *argv[]) { ... }При каких обстоятельствах можетargc быть нулем в системе POSIX?

4 ответа

не компилируется в C, хотя компилируется как программа C ++. Однако если после метки поместить нулевой оператор, программа компилируется. <, / P>

смущен, когда это не скомпилируется в C: int main() { for (int i = 0; i < 4; ++i) int a = 5; // A dependent statement may not be declaration return 0; }Я привык к C ++, где это будет компилироваться. Я просто какое-то время удивлялся, пока не ...

2 ответа

@GoranFlegar: я сказал, что я не адвокат по языку. Я представил обоснование, как я его вижу.

указан неверный код: struct foo { struct bar; bar x; // error: field x has incomplete type struct bar{ int value{42}; }; }; int main() { return foo{}.x.value; }Это вполне понятно, так какfoo::bar считается неполным в точке, гдеfoo::x ...