0
ответов

Какая программа на С ведет себя по-разному во время выполнения при компиляции с C89 и C99?

Я нашел следующий фрагмент (я думаю, в Википедии), который создает другое время выполнения, когда распознаются комментарии C ++, чем когда нет: int a = 4 // * Это комментарий, но где он заканчивается? * / 2; ...
вопрос задан: 8 November 2018 17:47
0
ответов

Правильно ли это сформировано, если я переопределю переменную как auto, и выведенный тип будет таким же? [Дубликат]

Посмотрите на этот фрагмент: int a; extern int b; авто б = а; Это хорошо сформировано? Clang успешно его компилирует, а GCC и MSVC - нет. (Эта проблема возникла, когда я ответил, Как объявить и определить ...
вопрос задан: 12 September 2018 23:04
0
ответов

Стандартное поведение для прямой инициализации unsigned short

Сегодня я заметил, что в примере кода: void print (unsigned short a) {std :: cout < < < < станд :: епсИ; } Инициализация и использование работает следующим образом: print (short (5)); Но не так: ...
вопрос задан: 10 September 2018 10:53
0
ответов

Является ли sizeof(*ptr) неопределенным поведением при указании на недопустимую память?

Мы все знаем, что разыменование нулевого указателя или указателя на нераспределенную память вызывает неопределенное поведение. Но каково правило, когда он используется в выражении, переданном в sizeof? Например: int ...
вопрос задан: 5 August 2018 03:45
0
ответов

Поведение деления с плавающей точкой на ноль

Рассмотрим #include < iostream > int main () {double a = 1.0 / 0; двойной b = -1,0 / 0; двойной с = 0,0 / 0; std :: cout < < < < b < < с; // чтобы остановить компиляторы от ...
вопрос задан: 24 July 2018 07:00
0
ответов

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

У меня есть некоторый код C, который анализирует упакованные / неупакованные двоичные данные, поступающие из сети. Этот код был / работает нормально под Intel / x86, но когда я компилировал его под ARM, он часто зависал. ...
вопрос задан: 6 July 2018 05:31
0
ответов

Является ли `template < typename & gt ;;` легальным C ++?

GCC и Clang не согласны с тем, является ли шаблон < typename & gt ;; является допустимым оператором в C ++ в глобальном масштабе. Я ожидаю, что это не будет разрешено в стандарте C ++, потому что шаблонизация относится к ...
вопрос задан: 20 May 2018 10:31
0
ответов

Неполный тип не разрешен в классе, но разрешен в шаблоне класса

Недопустимый код: struct foo {struct bar; полоса х; // ошибка: поле x имеет неполный тип struct bar {int value {42}; }; }; int main () {return foo {}. x.value; } Это ...
вопрос задан: 7 May 2018 07:58
0
ответов

Побайтовые копии типов в C ++ 11?

Стандарт C ++ 11 гарантирует, что побайтовые копии всегда действительны для типов POD. Но как насчет некоторых тривиальных типов? Вот пример: struct trivial {int x; int y; trivial (int i): ...
вопрос задан: 10 April 2018 11:43
0
ответов

Стирание вектор :: конец из вектора

Работает ли это правильно (ничего не делает), когда я использую вектор < T > v; v.erase (v.end ()); Я хочу использовать что-то вроде v.erase (std :: find (...)); Должен ли я, если это v.end () или нет? Там нет информации ...
вопрос задан: 22 February 2018 07:19
0
ответов

Почему в этом контексте нетипичный параметр шаблона не может быть автоматическим?

Простейший фрагмент, который мне удалось получить, чтобы воспроизвести проблему, выглядит следующим образом: #include <вариант> шаблон <авто V> с использованием ic = std :: integra_constant ; enum {shake} ...
вопрос задан: 2 February 2018 22:52
0
ответов

Разница в типе между & ldquo; забавой & rdquo; и & ldquo; & amp; fun & rdquo ;?

Выражения «весело» и «весело» имеют один и тот же тип или нет? Рассмотрим следующий код: template < typename Check, typename T > void check (T) {static_assert (is_same < Check, T > :: value); ...
вопрос задан: 23 January 2018 10:10
0
ответов

Любопытно взаимно повторяющиеся определения классов

Я хочу, чтобы объявления типов в двух классах взаимно зависели друг от друга. Вот первый пример, который компилируется с использованием clang и gcc: template struct A {using X = char; ...
вопрос задан: 12 January 2018 17:01
0
ответов

Одномерный доступ к многомерному массиву: это четко определенное поведение?

Я полагаю, мы все согласны что считается идиоматическим C получить доступ к истинному многомерному массиву путем разыменования (возможно, смещения) указателя на его первый элемент одномерным способом, например: ...
вопрос задан: 27 December 2017 15:51
0
ответов

Какой тип у литерала null?

Уважаемые, интересно, какой тип у литерала null в C#? В Java нулевой литерал имеет специальный тип null: Существует также специальный тип null, тип выражения null, который не имеет ...
вопрос задан: 13 December 2017 05:03
0
ответов

Проходят ли разыменованные итераторы мимо «одного за другим» итератора с неопределенным поведением массива?

Дано int foo [] = {0, 1, 2, 3}; Я хочу знать, недействительны ли итераторы, которые указывают за «один конец». Например: auto bar = cend (foo) + 1; Есть масса жалоб и предупреждений о том, что ...
вопрос задан: 29 November 2017 20:58
0
ответов

В C ++ 14, в какой области объявляются перечислители с незаданной областью для объявленных перечислений?

C ++ 14 (точнее, N4296) говорит относительно перечислений в 7.2: 11: каждое имя-перечисление и каждый перечислитель с незаданной областью объявляются в области видимости, которая сразу же содержит спецификатор-перечисления. В настоящее время ...
вопрос задан: 23 November 2017 21:29
0
ответов

Является ли decltype (auto) для структурированной привязки ссылкой?

Рассмотрим пример: #include < iostream > #include < type_traits > #include < tuple > int main () {auto tup = std :: make_tuple (1, 2); auto [a, b] = tup; decltype (auto) e = ...
вопрос задан: 16 November 2017 19:55
0
ответов

У фантомного типа такое же выравнивание, как у исходного?

Рассмотрим следующую структуру, которая содержит некоторые значения среды: struct environment_values ​​{uint16_t влажность; температура uint16_t; зарядка uint16_t; }; Я хотел бы добавить немного ...
вопрос задан: 10 October 2017 15:40
0
ответов

C ++ - Почему статическая функция-член может ' не может быть создан с квалификатором 'const'

Сегодня у меня проблема. Мне нужна статическая функция-член, const не обязательна, а лучше. Но мои усилия не увенчались успехом. Кто-нибудь может сказать, почему и как?
вопрос задан: 18 July 2017 11:23
0
ответов

Должны ли зарезервированные слова быть заключены в кавычки, если заданы как имена свойств объектов JavaScript?

Учитывая объектный литерал или объект jQuery (html, attribute), указывает ли какая-либо спецификация, что зарезервированные слова или будущие зарезервированные слова ДОЛЖНЫ быть заключены в кавычки? Или, например, класс может быть установлен как ...
вопрос задан: 1 July 2017 20:55
0
ответов

Как определить, что «упорядочено раньше» других?

Я прошел через этот отличный ответ относительно неопределенного поведения и упорядоченных отношений [до / после] в C ++ 11. Я понимаю концепции бинарных отношений, но мне не хватает новых правил ...
вопрос задан: 20 June 2017 14:11
0
ответов

std::tuple и стандартная компоновка

Если все члены std::tuple имеют стандартные типы компоновки, это стандартный макет std::tuple? Наличие определяемого пользователем конструктора копирования делает его нетривиальным, но мне было интересно...
вопрос задан: 23 May 2017 12:34
0
ответов

В каких версиях стандарта C++ поведение «(i+=10)+=10» не определено?

В C++ имеет ли следующее поведение undefined: int i = 0; (i+=10)+=10; В комментариях к моему ответу на вопрос «Каков результат += в C и C++» по этому поводу были некоторые дебаты? Тонкость...
вопрос задан: 23 May 2017 12:34
0
ответов

Почему нет заголовка и может ли его отсутствие считаться дефектом?

Стандартная библиотека включает заголовок , который (вперед) объявляет все streams, включая любые определения типов, и определяет шаблон char_traits, включая специализации. К сожалению, есть ...
вопрос задан: 23 May 2017 12:33
0
ответов

Эффект от `basic_streambuf: : setbuf`

Моя проблема заключается в следующем: Мартин Йорк утверждает в этом, этом, и это отвечает, что можно сделать строковый поток, прочитанный из некоторого фрагмента памяти, используя basic_stringbuf :: pubsetbuf следующим образом: char buffer [...
вопрос задан: 23 May 2017 12:33
0
ответов

Какова цель чистого виртуального деструктора? [дубликат]

Возможные дубликаты: При каких обстоятельствах выгодно давать реализацию чисто виртуальной функции? Зачем нам нужен чистый виртуальный деструктор в C ++? Компилятор не заставляет ...
вопрос задан: 23 May 2017 12:25
0
ответов

Применяются ли какие-либо гарантии безопасности потоков C++11 к сторонним библиотекам потоков, скомпилированным/соединенным с C++11?

C++11 предлагает такие функции, как поточно-безопасная инициализация статических переменных, и, ссылаясь на этот вопрос, мы скажем, например: Logger& g_logger() { static Logger lg; возврат LG; } Итак...
вопрос задан: 23 May 2017 12:22
0
ответов

Является ли четко определенным / законным многократное размещение new по одному и тому же адресу?

(Примечание: этот вопрос был мотивирован попыткой придумать хакерский метод препроцессора, чтобы сгенерировать безоперационное выделение для ответа на этот другой вопрос: Макрос, который принимает новый объект ... так что имейте это в виду!) ...
вопрос задан: 23 May 2017 12:22
0
ответов

Ветвление операторов присваивания со значениями вместо ссылок

Этот вопрос исходит из проблем, поднятых в этом ответе. Обычно мы определяем операторы присваивания копирования для типа T как T& operator=(const T&), а операторы присваивания перемещения для типа T как T&...
вопрос задан: 23 May 2017 12:20