Эта программа приводит к нежелательному тупику разбора:
struct float4x4 {};
class C
{
float4x4 M();
};
float4x4 ::C::M()
{
return float4x4{};
}
: 8: 1: ошибка: нет члена с именем 'C' в 'float4x4'; Вы имели в виду просто «С»?
float4x4 :: C :: M ()
^ ~~~~~~~~~~~
Который может быть «исправлен» с использованием конечного типа возврата:
auto ::C::M() -> float4x4
{}
сейчас все хорошо.
Итак, я так понимаю, мы не можем полностью определить имя класса при использовании синтаксиса объявления заголовка-возвращаемого типа?
@Someprogrammerdude да, проверьте это godbolt.org/z/mt6GHD
—
v.oddou
::C
Часть выглядит как обходной путь для какого - то другого вопроса. Иначе это могло бы быть просто C
(как подсказывает компилятор;)
@rustyx - это просто механическое переиздание кода транспортером, который не хочет выполнять сверхсложное «найти наименее подходящее имя» в этой позиции. испускание FQ-имени полностью обходит поиск и удобно для таких инструментов.
—
v.oddou
::
, я полагаю, что другого пути нет.