time
[?]. В системах, которые придерживаются спецификации POSIX, результат можно интерпретировать как количество секунд. Т.е. раз в секунду результат time( nullptr )
будет меняться. Именно это и видно в приведенном тобой листинге.Сумма массива под номером 9 равна 73
Сумма массива под номером 10 равна 76
const
играет большую роль в понимании кода читателем. Something
первые 8 байт отданы на vtable, следующие 4 байта - на int some_field
. Там без padding-а, все верно. Итого получается 12 байт.Something
равно 8 байт, т.к. в его составе есть указатель vtable.return
в ее теле. Все прочие return
обязаны в таком случае возвращать значение точно того же типа.std::function func{ ... };
.std::function<Y ( int )> func{
[]( int z ) -> Y
{
if( z > 0 )
{
return X{};
}
return Y{};
}
};
return
отличается от типа значения верхнего return
.std::begin
и std::end
для определения границ итерирования. Голый указатель на память неизвестного размера принципиально не способен дать информацию ни о начале диапазона итерирования, ни о его конце.std::span
[?] если ты пишешь в стандарте C++20. Иначе для тебя будет лучше найти или создать аналог std::span
если ты хочешь использовать именно range-based for-loop в коде. = {}
выполняет сразу две операции.{}
- это формирование пустого списка инициализации [?]. Эта операция сводится к формированию local temporary [?] с типом int*
и инициализации этого temporary local методом default initialization [?], который для данного типа сводится к методу zero initialization [?].int*
будет nullptr
.=
и выполняет инициализацию определенного arr
значением ранее выведенного temporary local и с использованием метода copy initialization [?].arr
методом zero initialization.nullptr
и без проверки поступает в область разыменования. Это все приводит к неопределенному поведению [?]. int *arr
производит определение указателя на память с предположительным типом int
.int *arr = {}
. Что в точности означает = {}
в этом коде? int *arr = {}
? NodeContainer
ведет себя как std::shared_ptr
, то тебе стоит использовать std::shared_ptr
и не тратить силы на свои аналоги. std::shared_ptr
позволяет приведение к типу.NodeContainer
и какую задачу ты решаешь через иерархию NodeBase
. Если тебе интересно изучить действительно качественное решение твоей задачи, тебе стоит постараться объяснить. NodeContainer<RedNode>
и NodeContainer<BlueNode>
будут являться абсолютно разными типами? Просто я не представляю, как ты будешь с этим работать.NodeBase
?
Код в изображениях размещать запрещено. Допустимо - только в виде текста, под соответствующим тегом.
Тебе стоило сразу указать на источник того кода, который ты собираешь.