std::string
ID からを生成する汎用関数を実装しようとしています(これは ですstd::pair<uint32_,uint32_t>
)。
機能は次のとおりです。
typedef uint32_t element_type;
template <element_type type>
std::string to_string (const std::pair<element_type, uint32_t>& id) {
....
const char* name = elemen_type_traits<type>::element_type_name;
...
}
次の方法で関数を呼び出すことができます。
std::cout << to_string<ELEMENT_TYPE_FOO> (foo_0) << std::endl;
std::cout << to_string<ELEMENT_TYPE_FOO> (foo_1) << std::endl;
唯一のことは、テンプレート パラメーターが の最初のフィールドと一致することを確認したいということですstd::pair
。からパラメータ値を差し引くことは可能std::pair.first
ですか?
それが可能かどうかはわかりませんが、最終的には次のようなものが必要です。
std::cout << to_string (foo_0) << std::endl;
std::cout << to_string (foo_1) << std::endl;
前もって感謝します。