考虑以下
template<typename Type, size_t Dimensions>
struct Base
{
Base(/*some args*/) { /*do something*/ }
};
template<size_t Dim>
class Derived : Base<double,Dim> {};
Derived不继承Base的构造函数,因为它表明Base是部分特化,因此需要一些不同的构造函数。然而,在我的情况下并非如此。我主要希望它在不同的情况下有不同的名字。我正在寻找一种不同于宏的解决方案,如果存在,则需要使用以下解决方案。
template<size_t Dim>
struct Derived
{
typedef Base<double, Dim> Type;
}
主要是因为我不喜欢使用
Derived<n>::Type
到处都不确定我想要
typedef Derived<n>
我使用的每一个。
答案 0 :(得分:2)
试试这个:
template<std::size_t dim>
using foo = typename derived<dim>::type;
//usage
foo<n> bar;
这利用了使用语句的C ++ 11模板