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

3 ответа

читать до записи не определено с недопустимой памятью?

Согласно сэта ветка комментариев Reddit [http://www.reddit.com/r/programming/comments/pfe6y/using_uninitialized_memory_for_fun_and_profit/] , он не определен, если сделана попытка прочитать память до того, как она была записана. Я имею в виду ...

2 ответа

Получение ссылки по ссылке в лямбде C ++ 11

Учти это: #include <functional> #include <iostream> std::function<void()> make_function(int& x) { return [&]{ std::cout << x << std::endl; }; } int main() { int i = 3; auto f = make_function(i); i = 5; f(); }Эта программа гарантированно выведет5 ...

1 ответ

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

Этот код нарушает строгий псевдоним? struct {int x;} a; *(int*)&a = 3Говоря более абстрактно, допустимо ли приведение между различными типами, если примитивные операции чтения / записи являются правильными?

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

1 ответ

По какой причине присоединяемый std :: thread не присоединяется автоматически?

Иногда было бы полезно, если бы присоединяемыйstd::thread был в состоянии выполнитьthread::join() на его деструкторе. Смотрите примеры ниже. Пример 1 (ошибка):Объектstd::thread был уничтожен после броска исключения. Как только поток выходит из ...

12 ответов

Observable behavior and undefined behavior — What happens if I don't call a destructor?

Примечание: Я видел похожие вопросы, но ни один из ответов не является достаточно точным, поэтому я задаю это сам. Это очень придирчивый "вопрос языка юриста" Я ищу авторитетный ответ.Стандарт C ++ гласит: Программа может закончить время жизни ...

2 ответа

Разрешено ли реализациям добавлять открытых членов к стандартным типам?

Разрешено ли реализациям стандартной библиотеки C ++ добавлять открытые (и защищенные) члены к интерфейсам стандартных типов? N3797 17.6.5.5 [member.functions] / 2 говорит: Реализация может объявлять дополнительные не виртуальные ...

5 ответов

Является ли & errno законным C?

За 7,5, [errno] расширяется до модифицируемой lvalue175), которая имеет тип int, значение которого устанавливается положительным числом ошибки несколькими библиотечными функциями. Не определено, является ли errno макросом или идентификатором, ...

3 ответа

Почему полная специализация шаблонной функции не берется из файла .cpp без объявления?

Следующий код не генерирует компиляцию / ошибку компоновщика / предупреждение: // A.h #include<iostream> struct A { template<typename T> static void foo (T t) { std::cout << "A::foo(T)\n"; } }; void other (); // main.cpp #include"A.h" int main ...

2 ответа

Требуется ли сохранить емкость при перемещении std :: vector?

Рассмотрим следующий код: std::vector vec; vec.reserve(500); size_t cap = vec.capacity(); std::vector newVec = std::move(vec); assert(cap == newVec.capacity());Практически в любой реализации, с которой вы столкнетесь, это будет работать. Меня не ...

7 ответов

Какой тип битового поля?

Я не могу найти нигде в стандарте C, где это указано. Например, в struct { signed int x:1; } foo;являетсяfoo.x lvalue типаint, или что-то другое? Это кажется неестественным для того, чтобы быть lvalue типаint так как вы не можете хранить любое ...