我想实现类似的目标:
ans
我知道你不能模板化命名空间,所以我只是写它很长的路径吗?
答案 0 :(得分:0)
如果我理解你的问题,你想要的就是你想要的。即使你的using Gen = ...
有效,你仍然需要写:
template <class that, class has, class much, class genericizem>
Gen<that,has,much,genericizem> &Gen<that,has,much,genericizem>::method(Gen &gen1, Gen &gen2){
因为Gen
是模板别名,通常与原始Genric
完全相同。
您的会员功能可以定义为:
template <class that, class has, class much, class genericizem>
auto Generic<that,has,much,genericizem>::method(Generic &gen1, Generic &gen2) -> Generic&
{
/* ... */
}
每次引用Generic
时都不需要重复所有模板参数,因为普通Generic
代表要实例化的类。这被称为注入的类名。
但请注意,语法上返回类型不在类范围内,因此您不能在那里使用注入的类名。相反,您可以使用auto
和尾随返回类型。