C++ 中是否有严格类型定义的习惯用法,可能使用模板?
就像是:
template <class base_type, int N> struct new_type{
base_type p;
explicit new_type(base_type i = base_type()) : p(i) {}
};
typedef new_type<int, __LINE__> x_coordinate;
typedef new_type<int, __LINE__> y_coordinate;
所以我可以使这样的事情成为编译时错误:
x_coordinate x(5);
y_coordinate y(6);
x = y; // whoops
__LINE__
那里看起来可能很麻烦,但我不希望仅仅为了保持每种类型的唯一性而手动创建一组常量。