Вопросы с тегом 'language-lawyer'

Для вопросов о тонкостях формальных или авторитетных спецификаций языков программирования и сред.
6
ответов

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

C++ 11 представила стандартизованную модель памяти, но что именно это означает? И как это повлияет на программирование C++? Эта статья (Гэвин Кларк, цитирующая Херба Саттера) говорит, что, Модель памяти означает, что код C++ теперь имеет стандар...
задан 12 июня '11 в 2:30
17
ответов

int a [] = {1,2,}; Разрешена странная запятая. Любая конкретная причина?

Возможно, я не с этой планеты, но мне кажется, что следующая синтаксическая ошибка: int a[] = {1,2,}; //extra comma in the end Но это не так. Я был удивлен, когда этот код был скомпилирован в Visual Studio, но я научился не доверять компилятору MS...
задан 12 авг. '11 в 19:36
5
ответов

В CSS Flexbox, почему нет свойств "justify-items" и "justify-self"?

Рассмотрим основную ось и поперечную ось гибкого контейнера:                                                                                                                       Источник: W3C Чтобы выровнять элементы flex вдоль основной оси, с...
задан 13 сент. '15 в 18:30
7
ответов

Может ли код С++ быть действительным как в С++ 03, так и в С++ 11, но делать разные вещи?

Возможно ли, что код С++ соответствует как стандарту C++03, так и C++11 стандарт, но делать разные вещи в зависимости от того, какой стандарт он компилируется?
задан 13 апр. '14 в 22:12
13
ответов

Является основным допустимым идентификатором Java?

Один из моих детей принимает Java в старшей школе и получил это на одном из своих тестов: Какое из следующих значений является допустимым идентификатором в Java? а. 123java б. main с. java1234 д. {abce е. )whoot Он ответил b и сделал это неп...
задан 10 сент. '18 в 22:57
11
ответов

Почему поведение f (i = -1, я = -1) undefined?

Я читал о порядке нарушений оценок, и они приводят пример, который меня озадачивает. 1) Если побочный эффект скалярного объекта не секвенирован относительно другого побочного эффекта на том же скалярном объекте, поведение undefined. // snip f(i =...
задан 10 февр. '14 в 9:31
1
ответ

Положительная лямбда: '+ [] {}' - Какое волшебство?

В вопросе Переопределение lambdas не разрешено в С++ 11, почему?, была предоставлена ​​небольшая программа, которая не компилируется: int main() { auto test = []{}; test = []{}; } На вопрос был дан ответ, и все было хорошо. Затем пришел Йо...
задан 19 сент. '13 в 10:51
8
ответов

Действительный, но бесполезный синтаксис в коммутаторе?

Через небольшую опечатку я случайно нашел эту конструкцию: int main(void) { char foo = 'c'; switch(foo) { printf("Cant Touch This\n"); // This line is Unreachable case 'a': printf("A\n"); break; case 'b': prin...
задан 18 янв. '17 в 22:02
3
ответов

Что сделало я = я ++ + 1; юридический в С++ 17?

Прежде чем вы начнете вопить поведение undefined, это явно указано в N4659 (С++ 17) i = i++ + 1; // the value of i is incremented Тем не менее в N3337 (С++ 11) i = i++ + 1; // the behavior is undefined Что изменилось? Из тог...
задан 07 дек. '17 в 22:16
1
ответ

Скопировать/переместить назначение в std::vector:: erase() и std:: deque:: erase()

В процессе ответа на еще один вопрос я наткнулся на несколько разные формулировки для std::vector::erase() и std::deque::erase(). Вот что говорит С++ 14 о std::deque::erase ([deque.modifiers]/4-6, мой удар): Эффекты:... Сложность: количество выз...
задан 02 февр. '15 в 15:40
6
ответов

Имеет ли С++ 11, 14, 17 или 20 стандартную константу для pi?

Существует довольно глупая проблема с числом pi в C и C++. Насколько я знаю, M_PI определенный в math.h, не требуется никаким стандартом. Новые C++ стандарты внесли в стандартную библиотеку множество сложной математики - гиперболические функции, st...
задан 11 апр. '18 в 17:49
2
ответов

Лямбда-захват и параметр с тем же именем - кто тенью другой? (clang vs gcc)

auto foo = "You're using g++!"; auto compiler_detector = [foo](auto foo) { std::puts(foo); }; compiler_detector("You're using clang++!"); clang++ 3.6.0 и более новая распечатка "Вы используете clang++!" и предупредить о том, что захват foo не ...
задан 07 февр. '17 в 13:56
5
ответов

Определение оператора "==" для Double

По какой-то причине я прокрался в источник .NET Framework для класса Double и выяснил, что объявление == является: public static bool operator ==(Double left, Double right) { return left == right; } Та же логика применяется для каждого опера...
задан 01 февр. '16 в 18:04
9
ответов

Безопасно ли push_back элемент из того же вектора?

vector<int> v; v.push_back(1); v.push_back(v[0]); Если второй push_back вызывает перераспределение, ссылка на первое целое число в векторе больше не будет действительна. Так что это не безопасно? vector<int> v; v.push_back(1); v.reserv...
задан 13 сент. '13 в 17:27
6
ответов

Лямбда возвращается: это законно?

Рассмотрите эту довольно бесполезную программу: #include <iostream> int main(int argc, char* argv[]) { int a = 5; auto it = [&](auto self) { return [&](auto b) { std::cout << (a + b) << std::endl; ...
задан 05 сент. '18 в 22:42