我typedef该template class怎么办?就像是:
typedef std::vector myVector; // <--- compiler error
Run Code Online (Sandbox Code Playgroud)
我知道两种方式:
(1) #define myVector std::vector // not so good
(2) template<typename T>
struct myVector { typedef std::vector<T> type; }; // verbose
Run Code Online (Sandbox Code Playgroud)
我们在C++ 0x中有更好的东西吗?
我正在努力完成
namespace NTL
{
typedef std::valarray vector;
}
Run Code Online (Sandbox Code Playgroud)
通过标准C++.我知道这是不允许的,但我需要一种快速简便的方法(不重新实现所有函数,运算符,重载等)来获取模板typedef.
我现在正在做一个模板类Vector,它有一个valarray作为数据成员,但是这将要求我为我的向量重载所有数学函数(再次......就像valarray一样).
有任何想法吗?谢谢!
PS:我可能需要NTL::vector在某些时候扩展功能,并且将其纳入解决方案的方法将是非常棒的.
C ++是否提供一种方法来声明一个类中具有类类型的对象(例如foo_class::bar_class_in_class,在下面的示例中)而不必使用范围解析运算符,就像它在名称空间中的一个类(例如,foo_namespace::bar_class_in_namespace在下面的示例中)那样?
namespace foo_namespace {
class bar_class_in_namespace {
};
}
class foo_class {
public:
class bar_class_in_class {
};
};
int main() {
using namespace foo_namespace;
bar_class_in_namespace bar_0;
// Can I access bar_class_in_class without having to use the
// the scope resolution operator?
foo_class::bar_class_in_class bar_1;
}
Run Code Online (Sandbox Code Playgroud)
这个问题与我们可以像在命名空间中对类名进行别名一样吗?,此问题明确询问有关某个类中某个类的细微差别。