Зарезервированы идентификаторы:
* содержащие два подчёркивания подряд где угодно,
* начинающиеся с подчёркивания и большой буквы,
* в глобальном namespace — начинающиеся с подчёркивания,
* имена из стандартной библиотеки.
Это плохая мотивация, независимо от того, какой вариант на самом деле лучше. А вдруг кто-то (совершенно без UB) сделает #define print zzz, а у вас куча функций так называется? От этого тоже будете «защищаться»?
Моё мнение выражено выше. NULL или 0 — разницы нет, так как *проблему* это не решает.
> This Clause describes components for manipulating sequences of any non-array POD (3.9) type.
Ваш класс совсем не POD. Поэтому все измерения не имеют никакого смысла, это всё UB.
gcc.gnu.org/bugzilla/show_bug.cgi?id=24882
www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2534.html
> Люди даже не понимают почему у них программа на борланде не компилируется, когда компилятор орет, что у него нет iostream, есть только iostream.h
Это ортогональная проблема, которую нужно решать улучшением лекций.
Удачи… Не нужно даже далеко уходить в алгоритмы. Попробуйте написать, например, std::tuple и std::tuple_cat.
Нет.
en.cppreference.com/w/cpp/atomic/memory_order
Deprecated в C++11.
www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3051.html
* содержащие два подчёркивания подряд где угодно,
* начинающиеся с подчёркивания и большой буквы,
* в глобальном namespace — начинающиеся с подчёркивания,
* имена из стандартной библиотеки.
Моё мнение выражено выше. NULL или 0 — разницы нет, так как *проблему* это не решает.
habrahabr.ru/post/172091/#comment_6046361
stackoverflow.com/questions/2474018/when-does-invoking-a-member-function-on-a-null-instance-result-in-undefined-beha
gribozavr:
> f(2 * 21 — 42); // OK
На что вы ответили:
> А используется такое в переборе указателей в списках, деревьях и тд