Poniższy bezsensowny przykład nie kompiluje się, ale czy istnieje jakiś inny sposób przekazania szablonu zmiennej jako argumentu szablonu szablonu?
template<typename T>
constexpr auto zero = T{0};
template<typename T, template<typename> auto VariableTemplate>
constexpr auto add_one()
{
return VariableTemplate<T> + T{1};
}
int main()
{
return add_one<int, zero>();
}
c++
templates
c++14
template-templates
variable-templates
wypaczony
źródło
źródło
value<T>
to znaczyło? Odniesienie do zmiennej globalnej? Ponadto nie można używać ODR parametru szablonu innego niż typ, ale można to zrobić przy użyciu szablonu globalnego.