Pull to refresh
215
0
gribozavr @gribozavr

Пользователь

Send message
У вас в методике тестирования принципиально заложен undefined behavior. Читаем C++11 [strings]:

> This Clause describes components for manipulating sequences of any non-array POD (3.9) type.

Ваш класс совсем не POD. Поэтому все измерения не имеют никакого смысла, это всё UB.
А возможно и не будет. Это же ломает ABI.

gcc.gnu.org/bugzilla/show_bug.cgi?id=24882
У вас же LDAP? Вот и положите туда ключи.
«Всей группой» не работает. В зависимости от уровня студентов можно делать группы в среднем 2-3, максимум 5.

> Люди даже не понимают почему у них программа на борланде не компилируется, когда компилятор орет, что у него нет iostream, есть только iostream.h

Это ортогональная проблема, которую нужно решать улучшением лекций.
> Ну почему бы не изучить STL основательно, написав группой свою STL?

Удачи… Не нужно даже далеко уходить в алгоритмы. Попробуйте написать, например, std::tuple и std::tuple_cat.
Удачи в использовании каких-либо средств определения гонок с таким кодом.
> Любая атомарная операция является полным барьером (full memory barrier).

Нет.

en.cppreference.com/w/cpp/atomic/memory_order
volatile не имеет никакого отношения к многопоточности.
Это ничего не гарантирует.
> Благодаря throw не забываешь об исключениях, когда используешь метод.

Deprecated в C++11.

www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3051.html

As expressed in the national body comment above, exception specifications have not proven useful in practice. [...]

Зарезервированы идентификаторы:
* содержащие два подчёркивания подряд где угодно,
* начинающиеся с подчёркивания и большой буквы,
* в глобальном namespace — начинающиеся с подчёркивания,
* имена из стандартной библиотеки.
Потому что эти «правила» — личное мнение автора.
Это плохая мотивация, независимо от того, какой вариант на самом деле лучше. А вдруг кто-то (совершенно без UB) сделает #define print zzz, а у вас куча функций так называется? От этого тоже будете «защищаться»?

Моё мнение выражено выше. NULL или 0 — разницы нет, так как *проблему* это не решает.

habrahabr.ru/post/172091/#comment_6046361
Это действительно убедительная мотивация пункта рекомендаций стиля программирования от профессионала, не поспоришь.
И какой в этом смысл? Ввести UB в свою программу для лулзов?
Нельзя переопределять имена из стандартной библиотеки. Почитайте что такое UB, узнаете много нового.
Вы не знаете что такое UB, а спорите.
Так, стоп. Было сказано следующее:

gribozavr:
> f(2 * 21 — 42); // OK

На что вы ответили:
> А используется такое в переборе указателей в списках, деревьях и тд

Information

Rating
Does not participate
Location
Украина
Registered
Activity