Я пытаюсь написать шаблон, который вернет AliasSeq
типов возврата из функций AliasSeq
. Однако в моем коде, когда я пытаюсь скомпилировать его, он говорит мне Error: type (...) has no value
Возвращение динамического AliasSeq из шаблона
Это мой код, который я до сих пор:
template ReturnTypesFromFunctions(Functions...)
{
auto ReturnTypesFromFunctions()
{
alias functions = AliasSeq!();
foreach(fn; Functions)
{
functions = AliasSeq!(functions, ReturnType!fn);
}
return functions;
}
}
В основном то, что я пытаюсь сделать, это автоматически генерировать AliasSeq
массив из это:
int a();
bool b();
double c();
alias functions = AliasSeq!(a, b, c);
alias returnTypes = ReturnTypesFromFunctions!functions;
// returnTypes -> AliasSeq [int, bool, double]
Но с текущим кодом это приведет эти ошибки:
Error: type (int) has no value
Error: type (bool) has no value
Error: type (double) has no value
Error: type() has no value
Возможно, это связано с auto
, потому что компилятор не может найти тип из псевдонима функций. Однако нет такого типа, который представлял бы AliasSeq, потому что сама функция предназначена для определения типа, поэтому я могу использовать его в другом месте.
о хорошо, если его не представляется возможным, используя эту пустоту с Еогеаспом Я думаю, мне нужно также переписать все мои другие функции, то – WebFreak001