次のような構文を提供する一連のクラステンプレートの明示的な特殊化によって強化された関数テンプレートがあります
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");
}