EASTL ?)
size_t Integral promotion не выполняется по своему определению. else ожидается строго неотрицательное значение (sizeof(int) - 10). О проверке на неотрицательность мы ровно так же забыли, как и о проверке переполнения с беззнаковым размером.int. И знаешь что? Там UB изо всех щелей торчит в коде. Тут размер выделили, там умножили, сям прибавили и... ой... UB...int наступает уже просто тогда, когда ты решаешь выделить битовую матрицу 8192x8192 с ячейкой в 64 бита. Или битовый объем 512*512*512 с ячейкой 32 бита. Там выходит ровно 4ГБит информации. Да, такие размеры иногда бывают нужны. Это всего 536МБ.int в качестве размера все время приходится проверять на соответствие диапазону вместо одиночной проверки для беззнакового.тенденция избегать size_t из-за того, что он является беззнаковым, например, чтобы не попасть на неожиданные signed/unsigned promotion'ы или остатки по модулю 2^N ?
size_t? К обозначенному в цитате еще вернемся отдельно.size_t? потому что пакеты UDP быстрее проскакивают через маршрутизаторы, не встречая на своем пути интересные алгоритмы управления потоком, которые применяются к пакетам TCP
template< typename TImplementation >
class Cloneable
{
public:
std::unique_ptr<TImplementation> Clone() const;
// ...
};
class MyClass : public BaseClass, public Cloneable<MyClass>
{
friend class Cloneable<MyClass>;
// ...
};static_cast лично я никакой не вижу. Приведение типа времени трансляции с полной проверкой на соответствие. Никаких проблем нет.
Прошу повторно ознакомиться с регламентом работы сервиса и обратить внимание на П3.8.
Неразборчивый текст в мыльных изображениях никого не интересует. Код нужно оформлять согласно регламенту.