name и есть варианты, которая name тут имеется в виду - то предполагать один из вариантов, даже со стопроцентной уверенностью, не стоит.MyStruct::name = name; из примера автора. И это является качественным примером, т.к. переключение между UNL и QNL является одним из приемов качественного кода. Не в случае кода у автора, но в огромном наборе других случаев. struct Test {
int val = false;
const int& get_val(bool good, const int& default_value) const
{
return (good)? val : default_value;
}
};get, но возвращаешь ссылку на переменную. Написанное не соответствует смыслу. Если get, то ссылка на константу. Если ссылка на переменную, то access.get всегда подразумевает константный контекст, поэтому const для метода строго обязателен. Иначе снова написанное не соответствует смыслу.но я 2 раза написал одну и ту же функцию, как это оптимизировать
инструменты на c++ для модификации игр ( классы, поля, dll)
_NODISCARD auto operator[](const size_t pos) const- это не просто перегрузка оператора. Это обобщение перегрузки оператора. А обобщения в языке работают очень близко к шаблонам. У них упрощенная механика, сродни обобщениям в Яве или Шарпе. Это надо читать как семейство семантически близких функций.Поэтому, хоть автор и незнамо дела воспользовался, его ожидания близки к реальности, но все равно невыполнимы на имеющемся у него коде. И без экспертного опыта в языке тоже невыполнимы.
Прежде всего, потому что перегрузка функции недопустима только лишь за счет типа результата.
Автор просто не смекает разницу между системами типов C++ и Python.