type -> int
コンパイル時に認識され、2 つのプログラム間で等しいマップが必要な 2 つの C++ プログラムがあります。さらに、マップが 1 対 1 であることをコンパイル時に自動的に確認したいと考えています。どのように解決しますか?(c++0x 拡張が許可されます)。最初の部分は簡単です:
template < typename T > struct map;
template <> struct map <...> { enum { val = ...; }; };
プログラム間。val
(2 番目の部分は、プログラムのどこかで 2 つの異なる型に対して誤って同じものを定義したくないことを意味します。)