Код: Выделить всё
class Registry2
{public:
template
component_t& getComponent()
{
component_t t;
return t;
}
};
int main(int argc, char* argv[])
{
Registry2 registry;
auto& ref = registry.getComponent();
}
Код: Выделить всё
-Werror=return-type
-Wno-unused-variable
предупреждение: ссылка на стековую память, связанную с локальной переменной 't'
возвращается [-Wreturn-stack-address]
Однако на моем компиляторе Clang 22, он не компилируется и говорит:
ошибка: неконстантная ссылка lvalue на тип 'int' не может быть привязана к
временному значению типа 'int' 65 | return t;
Что случилось, что это изменилось? Это специфично для Clang версии 22?
Подробнее здесь: https://stackoverflow.com/questions/798 ... -reference
Мобильная версия