1
我正在編寫一個模板化的稀疏容器類,並希望檢查傳入數據是否等於零。數據類型將是整數或固定大小的特徵類型。爲本徵類型專門設計一個函數
#include <Eigen/Core>
template<typename T>
struct SparseContainer
{
void insert(const T& value)
{
if(isZero(value))
return;
// ...
}
};
int main(int argc, char* argv[])
{
SparseContainer<int> a;
a.insert(1);
SparseContainer<Eigen::Vector2i> b;
b.insert(Eigen::Vector2i(1, 0));
}
如何提供isZero()函數,使之與默認整數和本徵類型的作品,並可以由類自己類型的用戶進行擴展。我沒有使用boost,但是C++ 11(即std::enable_if
)沒問題。