в качестве аргумента функции в самом объявлении функции указана ссылка.
Как так то? C++ автоматически берет ссылку?
После вызывается конструктор, которые добавляет указатель на мой скрипт в общий контейнер:
Register::Registry::RegisterActorWithComponent
- это не конструктор. Это метод.main
вызывается этот метод. std::cout << Bacteria::Print
.Bacteria::Print
? С учетом еще одного приведения - prvalue. А тип - указатель на функцию.почему, если вывести адрес указателя и адрес функции, у первого будет 16-ричная, возможно 16-циферное число, то тут просто один?
int (*)()
. Подходящей перегрузки operator <<
для такого типа аргумента нет. А самой ближайшей перегрузкой с учетом неявного преобразования будет перегрузка для булева значения, которая и пишет нолик/единичку. Учитывая что адреса функций всегда определены, std::cout << Bacteria::Print
сведется к std::cout << true
. m = {1, 2, 3, 4, 5};
Vector& operator=(const init_l<T>& l)
, то в него будет передано размещение именно локального временного, правда с пометкой иммутабильности.Vector& operator=(const init_l<T> l)
, то локальный временный будет использован для инициализации аргумента оператора, с которым тело оператора и продолжит работать дальше._NODISCARD auto operator[](const size_t pos) const
- это не просто перегрузка оператора. Это обобщение перегрузки оператора. А обобщения в языке работают очень близко к шаблонам. У них упрощенная механика, сродни обобщениям в Яве или Шарпе. Это надо читать как семейство семантически близких функций.name
и есть варианты, которая name
тут имеется в виду - то предполагать один из вариантов, даже со стопроцентной уверенностью, не стоит.MyStruct::name = name;
из примера автора. И это является качественным примером, т.к. переключение между UNL и QNL является одним из приемов качественного кода. Не в случае кода у автора, но в огромном наборе других случаев.