おそらくテンプレートを使用して、C ++の厳密なtypedefのイディオムはありますか?
何かのようなもの:
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__
には問題があるように見えますが、各タイプを一意に保つためだけに定数のセットを手動で作成する必要はありません。