0
ответов

Доступ к неактивному члену союза и неопределенное поведение?

У меня сложилось впечатление, что доступ к члену союза, отличному от последнего набора, является UB, но я не могу найти надежную ссылку (, кроме ответов, утверждающих, что это UB, но без какой-либо поддержки...
вопрос задан: 20 September 2016 16:11
0
ответов

В чем разница в неопределенном поведении между C ++ 03 и C ++ 11?

Новый стандарт имеет неопределенное поведение, отличное от старого. Новые правила последовательности, например, означают, что некоторые арифметические операции, которые раньше были неопределенными (по таким причинам, как множественные ...
вопрос задан: 13 May 2016 10:22
0
ответов

Почему улучшенный оптимизатор GCC 6 нарушает практический код C ++?

В GCC 6 появилась новая функция оптимизатора: она предполагает, что она всегда не равна нулю, и оптимизирует ее на основе этого. Распространение диапазона значений теперь предполагает, что указатель this функций-членов C ++ не равен нулю ....
вопрос задан: 27 April 2016 14:45
0
ответов

Использование вновь объявленной переменной при инициализации (int x = x+1)?

Я только что наткнулся на поведение, которое меня удивило: При записи: int x = x+1; в C/C++-программе (или даже в более сложном выражении, включающем только что созданную переменную x) мой gcc/g++ компилируется...
вопрос задан: 12 February 2016 13:21
0
ответов

Оператор-запятая и выражение void

Я наткнулся на этот фрагмент кода 1 int return_printChar1 () {// код // упс! нет заявления о возврате } интервал return_printChar2 () {// код return printf ("Возврат"); } int main () {int ...
вопрос задан: 28 January 2016 01:40
0
ответов

Реализация C ++, которая обнаруживает неопределенное поведение?

Огромное количество операций в C ++ приводит к неопределенному поведению, где спецификация полностью отключается о том, что должно быть поведение программы и позволяет что-то случиться. Из-за этого ...
вопрос задан: 6 August 2015 19:58
0
ответов

Почему это undefined поведение для удаления [] массива производных объектов с помощью базового указателя?

Я нашел следующий фрагмент в стандарте C ++ 03 в разделе 5.3.5 [expr.delete] p3: В первом варианте (удалить объект) , если статический тип удаляемого объекта отличается от его ...
вопрос задан: 31 July 2015 19:16
0
ответов

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

Гарантируется ли при добавлении именованного элемента в список, что элемент будет добавлен в конец списка? На практике кажется, что это так, но не уверены, что это опасное предположение? test = ...
вопрос задан: 27 July 2015 02:19
0
ответов

Хорошо ли определено использование sizeof для переменной, в которой существует тип с таким же именем?

Это хорошо определенное поведение или оно не определено / как-то еще определено, с каким foo (типом данных или идентификатором) будет работать sizeof? typedef int foo; int main (int argc, char * argv []) {...
вопрос задан: 25 July 2015 05:00
0
ответов

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

В C операция побитового сдвига влево вызывает неопределенное поведение, когда левый операнд имеет отрицательное значение. Соответствующая цитата из ISO C99 (6.5.7 / 4) Результатом E1 << E2 является сдвиг E1 влево ...
вопрос задан: 3 July 2015 16:28
0
ответов

Определяет ли сдвиг отрицательных целых чисел влево и вправо?

Я знаю, что сдвиг вправо отрицательного типа со знаком зависит от реализации, но что, если я выполню сдвиг влево? Например: int i = -1; я << 1; Это четко определено? Я думаю, что стандарт ...
вопрос задан: 17 April 2015 14:09
0
ответов

GCC 4.8 с GNU STL производит плохой код для конструктора std :: string?

Итак, немного кода на C ++: void func (const std :: string & theString) {std :: string theString (theString); theString + = "ещё строка"; std :: cout << theString; } который прекрасно компилируется ...
вопрос задан: 3 December 2014 18:42
0
ответов

Почему вне -из -арифметических указателей границ поведение undefined?

Следующий пример взят из Википедии. интервал [4] = {0, 1, 2, 3}; int *p = обр + 5; // неопределенное поведение Если я никогда не разыменовываю p, то почему одно только arr + 5 ведет себя как неопределенное? Я ожидаю...
вопрос задан: 8 July 2014 14:22
0
ответов

Зависимости в списках инициализации

Хорошо ли определено это поведение? класс Foo {int A, B; public: Foo (int Bar): B (Bar), A (B + 123) {} }; int main () {Foo MyFoo (0); возврат 0; }
вопрос задан: 19 June 2014 08:28
0
ответов

Является ли (++ i) ++ неопределенным поведением?

Является ли (++ i) ++ неопределенным поведением? Возможно ли, что побочный эффект приращения префикса происходит после получения увеличенного объекта для работы с приращением постфикса? Это могло показаться странным ...
вопрос задан: 31 May 2014 11:43
0
ответов

Порядок оценки аргументов при вызове функции?

Я изучаю неопределенное поведение в C и пришел к утверждению, в котором говорится, что не существует определенного порядка вычисления аргументов функции, но как насчет стандартного вызова ...
вопрос задан: 4 April 2014 07:30
0
ответов

Почему этот оператор не работает в java x ^ = y ^ = x ^ = y;

int x = 1; int y = 2; х ^ = у ^ = х ^ = у; Я ожидаю, что значения поменяются местами, но это дает x = 0 и y = 1. когда я пробовал на языке C, он дает правильный результат.
вопрос задан: 28 February 2014 08:25
0
ответов

Почему дважды блокируется мьютекс std ::«Неопределенное поведение»?

Согласно этой статье :Если вы попытаетесь заблокировать не-рекурсивный мьютекс дважды из одного и того же потока без разблокировки между ними, вы получите неопределенное поведение. Мой очень наивный ум подсказывает мне, почему бы им просто...
вопрос задан: 19 February 2014 21:54
0
ответов

Неверный указатель снова становится действительным

int * p; {int x = 0; p = & amp; x; } // p больше не действителен {int x = 0; if (& x == p) {* p = 2; // Это верно? }} Доступ к указателю после того, на что он указывает ...
вопрос задан: 22 August 2013 18:16
0
ответов

Виртуальный деструктор и неопределенное поведение

Этот вопрос отличается от "Когда/почему я должен использовать виртуальный деструктор?". struct B { virtual void foo (); ~B() {} // <--- не виртуальный }; struct D : B { virtual void foo (); ~D() {} };...
вопрос задан: 1 July 2013 14:05
0
ответов

Насколько катастрофично целочисленное переполнение в C ++?

I просто интересно, насколько катастрофично целочисленное переполнение. Возьмем следующий пример программы: #include int main () {int a = 46341; int b = a * a; std :: cout << ...
вопрос задан: 2 March 2013 06:30
0
ответов

Почему удаление моего указателя не удаляет мой указатель?

Итак, чтобы лучше понять новое / удалить (действительно, чтобы доказать себе на небольших примерах, почему виртуальные деструкторы необходимы для интерфейсов), я хочу понять утечки памяти, чтобы я мог жить в страхе перед ...
вопрос задан: 24 January 2013 10:35
0
ответов

Почему целочисленное переполнение на x86 с GCC вызывает бесконечный цикл?

Следующий код переходит в бесконечный цикл на GCC: #include using namespace std; int main () {int я = 0x10000000; int c = 0; делать {c ++; я + = я; ...
вопрос задан: 20 January 2013 16:56
0
ответов

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

int & fun () {int * temp = NULL; return * temp; } В вышеупомянутом методе я пытаюсь выполнить разыменование NULL-указателя. Когда я вызываю эту функцию, она не вызывает исключения. Я обнаружил ...
вопрос задан: 13 December 2012 10:29
0
ответов

О неопределенном поведении

Обычно UB считается чем-то, чего следует избегать, и в самом текущем стандарте C перечислено довольно много несколько примеров в приложении J. Однако есть случаи, когда я не вижу вреда в ...
вопрос задан: 13 October 2012 01:19
0
ответов

Объединение с константным и неконстантным членами?

Это похоже на неопределенное поведение union A {int const x; float y; }; А а = {0}; ау = 1; В спецификации сказано: «Создание нового объекта в месте хранения, который представляет собой константный объект со статическими, ...
вопрос задан: 25 September 2012 23:29
0
ответов

Is Тип name = name; когда-либо полезен в C ++?

В C ++ разрешен следующий код: int a = a; или введите имя = имя; Оба приводят к инициализации неинициализированного объекта сам по себе, что часто приводит к неопределенному поведению. Разве такой код когда-либо ...
вопрос задан: 17 August 2012 06:20
0
ответов

Безопасно ли в C приводить указатель функции с переменным числом аргументов к указателю функции с конечными аргументами?

Я хочу создать указатель функции на функцию, которая будет обрабатывать подмножество случаев для функции, которая принимает список переменных параметров. Вариант использования — преобразование функции, которая переводит... в...
вопрос задан: 31 July 2012 00:01
0
ответов

Может ли один элемент кортежа ссылаться на другой?

Обновление :См. полный ответ ниже. Короткий ответ — нет, не напрямую. Вы можете создать косвенную ссылку, используя оболочку std ::reference _или достичь того же эффекта в более общем виде с помощью указателей (...
вопрос задан: 29 July 2012 03:40
0
ответов

Распространяется ли «неопределенное поведение» на время компиляции -?

Мы все слышали предупреждения о том, что если вы вызовете неопределенное поведение в C или C++, может произойти что угодно. Ограничено ли это вообще каким-либо поведением во время выполнения или это также включает любую компиляцию -...
вопрос задан: 18 July 2012 16:36