C++ 获取模板实例化的类型?
我有以下情况: 我有一个类型为C++ 获取模板实例化的类型?,c++,templates,C++,Templates,我有以下情况: 我有一个类型为MyClass的对象,它有一个将自身强制转换为基类的方法。该类包括一个用于基类的typedef和一个执行向上转换的方法 template <class T, class B> class BaseClass; template <class T> class NoAccess; template <class T> class MyClass : public BaseClass<T, NoAccess<T>
MyClass
的对象,它有一个将自身强制转换为基类的方法。该类包括一个用于基类的typedef和一个执行向上转换的方法
template <class T, class B>
class BaseClass;
template <class T>
class NoAccess;
template <class T>
class MyClass : public BaseClass<T, NoAccess<T> >
{
private:
typedef BaseClass<T, NoAccess<T> > base;
public:
base &to_base();
};
如果我不想使用NoAccess,是否有一种简单的方法来填写
?
。您可以将typedef公开:
Operator<MyClass<type>::base> op(myobject.to_base());
操作符op(myobject.to_base());
您可以将typedef公开:
Operator<MyClass<type>::base> op(myobject.to_base());
操作符op(myobject.to_base());
您可以定义工厂函数以使用类型推断:
template< class Y >
Operator<Y> create_operator( Y &y ) {
return Operator<Y>( y );
}
模板
运算符创建\运算符(Y和Y){
返回运算符(y);
}
您可以定义工厂函数以使用类型推断:
template< class Y >
Operator<Y> create_operator( Y &y ) {
return Operator<Y>( y );
}
模板
运算符创建\运算符(Y和Y){
返回运算符(y);
}
我认为有三种可能性:
MyClass::base
apublic
标识符class操作符{模板操作符(Y&x);}
运算符的代码
对象移动到其自己的函数模板中:模板操作符createOperator(const T&base)
{返回运算符(基);}
我认为有三种可能性:
MyClass::base
apublic
标识符class操作符{模板操作符(Y&x);}
运算符的代码
对象移动到其自己的函数模板中:模板操作符createOperator(const T&base)
{返回运算符(基);}
我不认为
myobject.base
是有效语法。我不认为myobject.base
是有效语法。