2
ответа

Арифметика нулевого указателя

Я заметил это предупреждение от Clang: предупреждение: выполнение арифметики с указателем на нулевом указателе имеет неопределенное поведение [-Wnull-pointer-arithmetic] В деталях, именно этот код вызывает это предупреждение: ...
вопрос задан: 17 January 2019 10:02
2
ответа

В C ++ определено ли поведение для удаления примитивного типа, такого как uint32_t, через char *?

Определенное поведение имеет следующее? uint32_t * p = new uint32_t (); char * p2 = reinterpret_cast < char * > (p); удалить р2; (Есть ли стандартная цитата, относящаяся к этому?) Я в курсе ...
вопрос задан: 17 January 2019 03:22
2
ответа

кастинг через пустоту* вместо того, чтобы использовать reinterpret_cast

Я читаю книгу, и я нашел, что reinterpret_cast не должен использоваться непосредственно, а скорее бросающий для освобождения* в сочетании с static_cast: T1 * p1 =... освобождают *pv=p1; T2 * p2 = static_cast <T2*> (...
вопрос задан: 20 December 2017 10:01
2
ответа

Почему различное поведение показано ниже между значением lvalue и rvalue? [Дубликат]

clang не продлевает время жизни временного S () при инициализации ссылки const lvalue. Но он продлевает время жизни S () при инициализации ссылки rvalue. Почему это? Если ...
вопрос задан: 13 March 2016 21:11
2
ответа

Кто здесь находится в `std :: initializer_list`? clang ++ или g ++? [Дубликат]

После долгого сражения с программой, в которой я не мог получить std :: initializer_list, логика работала, как ожидалось, я закончил с небольшим случаем, в котором я обнаружил, что clang ++ 6.0.1 и g ++ 8.2.0 оба ...
вопрос задан: 8 February 2016 16:18
2
ответа

Может ли объяснитель конструктора якобы быть проигнорирован из-за формы инициализации? [Дубликат]

Рассмотрим этот простой тип: struct A {A (int, int, int) {} A (std :: vector & lt; int & gt;) {}}; /// A a ({1,2,3}); Фрагмент выше представляет собой плохо сформированную программу, так как разрешение перегрузки ...
вопрос задан: 5 January 2016 23:06
2
ответа

“Чтение” результата преинкремента POD не приводит к неопределенному поведению. Почему точно?

Это - глупый вопрос. :) [РЕДАКТИРОВАНИЕ: глупый или нет, это оказалось вопросом об особенности C++, см., что UPDATE_2] предположим, что мы имеем: интервал = 0;//строка 1 интервал b = ++ a;//строка 2, Что происходит в...
вопрос задан: 13 August 2011 07:40
2
ответа

Использование const void [duplicate]

В последнее время я читаю стандарты C ++ 11 и обнаруживаю, что void может быть квалифицирован командой const или volatile. const void f (); Поэтому мне интересно: что означает тип возврата const void? Сост ...
вопрос задан: 20 February 2011 16:34
1
ответ

Разрешено ли компилятору постоянно сворачивать локальную переменную?

Рассмотрим этот простой код: void g (); void foo () {volatile bool x = false; если (х) г (); } https://godbolt.org/z/I2kBY7 Вы можете видеть, что ни gcc, ни clang не оптимизируют ...
вопрос задан: 17 October 2019 07:45
1
ответ

Почему я не могу передать сам как параметр, передаваемый по имени к методу экземпляра в Python?

Это работает:>>> панель определения (x, y):... распечатайте x, y...>>> панель (y=3, x=1) 1 3, И это работает:>>> класс Foo (объект):... панель определения (сам, x, y):... распечатайте x, y...
вопрос задан: 8 October 2019 17:58
1
ответ

гарантировано ли присвоение двух двойных одинаковых битовых комбинаций?

Здесь есть несколько постов о числах с плавающей запятой и их природе. Понятно, что сравнивать поплавки и двойники всегда следует осторожно. Просьба о равенстве также обсуждалась ...
вопрос задан: 17 April 2019 12:31
1
ответ

Невозможно Быстрые Делегаты C++ и различные единицы перевода

По словам Sergey Ryazanov, его Невозможно Быстрые Делегаты C++ не сопоставимы: Мои делегаты не могут быть сравнены. Операторы сравнения не определяются, потому что делегат не содержит...
вопрос задан: 31 March 2019 14:06
1
ответ

Правильно ли получен тип decltype выведенной функции-члена внутри конечного типа возврата другой функции-члена?

Кто бы ни сказал, что этот вопрос является дубликатом вопроса "Есть ли конкретная причина, по которой конечный тип возврата не является полным классом контекста класса?" не знает, что он / она ...
вопрос задан: 23 February 2019 12:38
1
ответ

std :: отмывание альтернативы pre c ++ 17

Это похоже на std :: необязательный, но не хранит лишнюю строку. Пользователь должен убедиться, что доступ только после инициализации. шаблон < класс T > union FakeOptional {// Может быть нормальной структурой, в которой ...
вопрос задан: 19 January 2019 00:36
1
ответ

Может ли эта memcpy привести к неопределенному поведению?

С этим определением: struct vector {const float x; const float y; }; приведенный ниже фрагмент кода может привести к неопределенному поведению? struct vector src = {.x = 1.0, .y = 1.0}; структура ...
вопрос задан: 18 January 2019 15:21
1
ответ

Является ли std :: vector тривиально копируемым и почему?

Я столкнулся с проблемой с std :: vector < T & gt ;, где T - встроенный тип, говорящий о том, что вектор не является копируемым. Мне было интересно, если это правильно, и я ищу причину.
вопрос задан: 18 January 2019 14:49
1
ответ

Гарантируется ли переполнение битового поля без знака циклическим переносом?

Подробности Ссылка на битовые поля в cppreference представляет следующий пример: #include < iostream > struct S {// трехбитное поле без знака, // допустимые значения: 0 ... 7 без знака int b: ...
вопрос задан: 15 January 2019 17:54
1
ответ

C ++ 11 представил стандартизированную модель памяти. Что это значит? И как это повлияет на программирование на C ++?

C ++ 11 представил стандартизированную модель памяти, но что именно это означает? И как это повлияет на программирование на C ++? Эта статья (Гэвин Кларк, которая цитирует Херба Саттера) говорит, что ...
вопрос задан: 23 November 2018 16:39
1
ответ

Что формулировка в стандарте C++ позволяет static_cast <non-void-type*> (malloc (N)); работать?

Насколько я понимаю формулировку в 5.2.9 Статических бросках, единственное время результат void*-to-object-pointer, преобразование позволяется, когда пустота* была результатом обратного преобразования в...
вопрос задан: 7 November 2018 23:30
1
ответ

Почему знак отличается после вычитания неподписанного и подписанного?

без знака int t = 10; int d = 16; плавать c = t - d; int e = t - d; Почему значение c положительное, а e отрицательное?
вопрос задан: 11 October 2018 17:20
1
ответ

Идентичнозначные указатели, сравнивающие неравные [дубликаты]

Я столкнулся с этим сообщением https://stefansf.de/post/pointers-are-more-abstract-than-you-might-expect/, в котором упоминается C11 § 6.5.9, пункт 6. Два указателя сравнивают одинаковые, если и только если оба ноль ...
вопрос задан: 23 May 2017 12:24
1
ответ

Изменит ли C++11 поведение явного вызова std::swap для обеспечения поиска ADL-локализованных свопов, подобно boost::swap?

Предыстория Рассмотрим для этого вопроса следующий код: #include namespace ns { struct foo { foo() : i(0) {} int i; private: foo(const foo&...
вопрос задан: 23 May 2017 12:13
1
ответ

Заставить `std :: get` играть с SFINAE

std :: get не кажется SFINAE-дружественным, как показано в следующем тестовом примере: template < class T, class C > auto foo (C & amp; c) - > decltype (std :: get < T > (c)) {return std :: get < T & ...
вопрос задан: 23 May 2017 11:45
1
ответ

Фортран: integer*4 по сравнению с целым числом (4) по сравнению с целым числом (kind=4)

Я пытаюсь изучить Фортран, и я вижу много различных раздаваемых определений, и я задаюсь вопросом, пытаются ли они выполнить то же самое. Каково различие между...
вопрос задан: 31 March 2017 22:41
1
ответ

Создание абстрактного класса с помощью списка инициализаторов [duplicate]

Я хотел бы понять, почему компилятор позволяет следующему коду компилировать #include < iostream > struct A {A () {std :: cout < < "A :: A \ п"; } виртуальная пустота f () ...
вопрос задан: 8 September 2016 13:45
1
ответ

Ранняя динамическая инициализация C ++ [дубликат]

В текущем стандарте C ++ в параграфе [basic.start.static] p.3 говорится (выделено мной): Реализации разрешено выполнять инициализацию переменной со статическим или потоковым хранилищем ...
вопрос задан: 11 June 2016 06:03
1
ответ

Что означает статическое значение в int [static 10]? [Дубликат]

Я нашел довольно странное и незнакомое использование статического ключевого слова в C99 и не смог найти в спецификациях языка или экспериментов, что это значит: void set (int t [static 10], int size) {...
вопрос задан: 10 May 2016 20:23
1
ответ

Разъяснение смысла интерпретации шаблона [дубликат]

[temp.res] reads Знание имен имен имен типов позволяет проверить синтаксис каждого шаблона. Программа плохо сформирована, не требуется диагностика, если: [...] гипотетическая ...
вопрос задан: 9 December 2015 05:21
1
ответ

Использование значения предыдущего элемента в инициализации массива [duplicate]

Поэтому я нашел, что этот код работает: int foo [] = {0, foo [0] + 1, foo [1] + 2, foo [2] + 4}; Это официально законно? Я думал, что я делаю initializer_list здесь, но если я могу получить доступ ранее ...
вопрос задан: 23 November 2015 02:12
1
ответ

Когда делает вызов функции членства на пустом результате экземпляра в неопределенном поведении?

Рассмотрите следующий код: #include <iostream> нечто структуры {//(a): пустая панель () {станд.:: суд <<"gman был здесь" <<станд.:: endl;}//(b): освободите baz () {x = 5;}...
вопрос задан: 30 September 2015 18:44