我正在尝试实现一个通用函数,它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;
提前致谢。