apr*_*amc 4 c++ template-meta-programming c++11
我正在创建一个模板类,它具有两种不同大小的特殊行为,以及一般类中的一般行为,如下所示::
template<typename T, size_t DIM>
class Dataset
{
public:
// all the constructors are defaulted
// all the general behavior implementation
std::vector<T> _data;
};
Run Code Online (Sandbox Code Playgroud)
鉴于下面课程的数据流量,我希望能够访问_data向量,对吗?
template<typename T>
class Dataset<T, 1>
{
public:
T & operator()(const size_t & index)
{
return _data[index];
}
};
Run Code Online (Sandbox Code Playgroud)
但是,我得到_data的编译错误无法解决.这里有什么问题 ?!!谢谢
类模板特化是它自己的类,与主模板无关.所以Dataset<T, 1>
没有_data
成员,因为你没有在其类定义中声明一个成员.
如果您需要同一模板的不同特化之间的共同特征,则可以将它们移动到共享基类.
归档时间: |
|
查看次数: |
122 次 |
最近记录: |