我有一个由一组类模板显式特化提供支持的函数模板,其语法如下
abc.GetAs<DesiredType>("Name");
(在哪里GetAs<t>
是这样的:
template<typename T>
T GetAs(wchar_t const* propName) const
{
typedef Converter<T> Converter;
auto thing = Get(propName);
return Converter::Convert(thing);
}
)
当该类型是枚举时,我想有一个专门DesiredType
化,以便返回的类型与枚举的基础类型(或enum class
)匹配。
这是可能的还是客户只需要自己指定基础类型?
我试图允许这样的代码:
enum class Example
{
One,
Two
}
int main()
{
foo_ipc_class ic(L"/// Construct me");
// Today, calls the primary template rather than an explicit
// specialization for an integral type.
Example ex = ic.GetAs<Example>(L"Property Name");
}