Описание тега unspecified-behavior
Unpredictable, but valid, behavior of a program that an implementation is not required to document.
2
ответа
C++ cout секвенирование побочных эффектов
Предположим, следующий фрагмент кода: #include <iostream> using namespace std; char one() { cout << "one\n"; return '1'; } char two() { cout << "two\n"; return '2'; } int main(int,char**) { // 1: cout << one() << '\n' &…
23 авг '14 в 20:52
5
ответов
Как реализовать memmove в стандарте C без промежуточной копии?
Со страницы man в моей системе: void * memmove (void * dst, const void * src, size_t len); ОПИСАНИЕ Функция memmove() копирует len байтов из строки src в строку dst. Две строки могут перекрываться; копия всегда делается в неразрушающем манера. Из ст…
26 окт '10 в 11:49
3
ответа
Это неопределенное поведение для сравнения указателей на разные массивы на равенство?
Операторы равенства имеют семантические ограничения реляционных операторов на указатели: Операторы == (равно) и!= (Не равно) имеют те же семантические ограничения, преобразования и тип результата, что и операторы отношения, за исключением их более н…
05 фев '11 в 21:26
3
ответа
Как отловить неопределенное поведение при инициализации аргумента функции
Следующий код работает в clang++, но эффектно падает в g ++ #include<vector> #include<iostream> template<class Iterator> double abs_sum(double current_sum, Iterator it, Iterator it_end){ if (it == it_end) return current_sum; retu…
14 дек '18 в 10:38
4
ответа
Причина возврата Map.unzip в Scala (Iterable, Iterable)
На днях мне стало интересно, почему scala.collection.Map определяет метод распаковки как def unzip [A1, A2] (implicit asPair: ((A, B)) ⇒ (A1, A2)): (Iterable[A1], Iterable[A2]) Поскольку метод возвращает "только" пару Iterable вместо пары Seq, не га…
31 мар '11 в 14:49
4
ответа
Является ли (x++, y) + (y++, x) неопределенным или неопределенным, и если он не указан, что он может вычислить?
Оператор последовательности запятой вводит точку последовательности в выражении. Мне интересно, означает ли это, что программа ниже избегает неопределенного поведения. int x, y; int main() { return (x++, y) + (y++, x); } Если он избегает неопределен…
18 дек '12 в 15:12
2
ответа
Как исправить эту проблему "срок действия не указан" в соответствии с GTMatrix?
У меня есть сайт WeeTech Solution. И всякий раз, когда я проверяю свой веб-сайт на "GT Matrix", показывается номер проблемы, например... • https://www.weetechsolution.com/css/content_slider_style.css (срок действия не указан) Как исправить эту пробл…
01 авг '17 в 04:37
1
ответ
Может ли выражение с использованием указателей вызывать неопределенное (не неопределенное!) Поведение в контексте constexpr?
Согласно cppreference (выделение мое): Выражение постоянной константы - это любое выражение, которое не имеет ни одного из следующих выражений в любом подвыражении. (...) Выражение, оценка которого приводит к любой форме неопределенного поведения ос…
03 мар '17 в 09:29
2
ответа
C++ инициализация переменной области имен пространства
Рассмотрите следующую программу: (см. Живую демонстрацию здесь.) #include <iostream> inline double fun() { return 3.0; } extern double m; double d2=m; int main() { std::cout<<d2; } double m=fun(); Я ожидал получить вывод программы как 3.…
27 сен '15 в 15:01
3
ответа
Это неопределенное поведение, если несколько операндов в составном выражении изменяют один и тот же объект?
Я смутно помню, что где-то читал, что это неопределенное поведение, если несколько операндов в составном выражении изменяют один и тот же объект. Я полагаю, что пример этого UB показан в приведенном ниже коде, однако я скомпилировал на g++, clang++ …
22 дек '12 в 17:48
1
ответ
Необъяснимое поведение cuda, связанное с памятью
Так что в основном я взял свой код на C++ (который работает правильно) и переписал его на cuda (у меня нет опыта работы с cuda). Одна часть кода (метод execute ()) не работает правильно, и я действительно не знаю почему. Поэтому мой вопрос заключает…
06 мар '14 в 21:45
2
ответа
Является ли это memset-memcmp для структурной переменной допустимым C?
Законно ли это memset структура к некоторому значению, затем сравните его с memcmp? struct S { // struct definition not relevant, but it has bitfields }; struct S invalid_S; memset(&invalid_S, 0xFF, sizeof invalid_S); struct S value; memset(&…
27 дек '17 в 14:20
1
ответ
Не указано, включает ли заголовок стандартной библиотеки произвольные заголовки?
Есть утверждение, в каких заголовках стандартной библиотеки C++ гарантированно включен другой заголовок?: Заголовки стандартной библиотеки C++ могут включать друг друга неуказанными способами, поэтому программисты обычно не должны зависеть от одного…
26 фев '15 в 16:20
2
ответа
Существует ли точка последовательности между вызовом функции, возвращающей объект, и вызовом метода для этого объекта?
Если я напишу f(x)->g(args, ...) могу ли я положиться на точку последовательности после f(x) до оценки args, ...? Я могу видеть аргументы в обоих направлениях: §1.9.17 "При вызове функции (независимо от того, является ли функция встроенной), посл…
01 мар '13 в 21:08
2
ответа
Порядок оценки: неопределенное поведение? или дефект компилятора?
Я получаю неправильный код asm для приведенного ниже тестового кода от компилятора C. Это связано с неопределенным поведением? void SimulatedTest(void) { if ( (a) || (b && c || d) == 1 ) { i = 2; } else { i = 4; } } Какой стандарт говорит: 6…
29 июл '16 в 09:56
2
ответа
Неопределенное поведение в данном коде?
Каково возвращаемое значение f(p,p), если значение p инициализируется до 5 перед вызовом? Обратите внимание, что первый параметр передается по ссылке, тогда как второй параметр передается по значению. int f (int &x, int c) { c = c - 1; if (c==0)…
30 сен '15 в 06:44
4
ответа
Переместить семантику и оценку порядка функций
Предположим, у меня есть следующее: #include <memory> struct A { int x; }; class B { B(int x, std::unique_ptr<A> a); }; class C : public B { C(std::unique_ptr<A> a) : B(a->x, std::move(a)) {} }; Если я правильно понимаю правила …
17 июл '14 в 22:41
3
ответа
Является ли func() + func() неопределенным поведением?
Я только знаю i = i++; является неопределенным поведением, но если в выражении вызываются две или более функций, и все функции одинаковы. Это неопределенно? Например: int func(int a) { std::cout << a << std::endl; return 0; } int main() …
20 сен '13 в 01:01
2
ответа
Ни одно из неопределенного, определенного реализацией, неопределенного поведения
C++ 03 $ 5.3.3 / 2 - "Размер наиболее производного класса должен быть больше нуля (1,8)". $1.8/4 - "Если это не битовое поле (9.6), наиболее производный объект должен иметь ненулевой размер и занимать один или несколько байтов памяти". Тогда мой воп…
04 дек '10 в 00:25
2
ответа
Считается ли разыменование NULL-указателя неопределенным или неопределенным поведением?
Консенсус вопросов о стеке потока говорит о том, что это неопределенное поведение. Тем не менее, я недавно видел выступление Чарльза Бэй в 2016 году под названием:Перестановка инструкций везде: правило "как будто" в C++ и роль последовательности. В …
08 окт '16 в 05:41