cppreferenceには、テンプレート化されたユーザーリテラル演算子を使用できるという言及がありますが、いくつかの制限があります。
char
リテラル演算子がテンプレートの場合、空のパラメーター リストが必要であり、テンプレート パラメーターを 1 つだけ持つことができます。これは、次のような要素 type を持つ非型テンプレート パラメーター パックでなければなりません。
template <char...> double operator "" _x();
だから私は以下のコードのようなものを書きました:
template <char...>
double operator "" _x()
{
return .42;
}
int main()
{
10_x; // empty template list, how to specify non-empty template parameters?
}
質問:
- コードは機能しますが、空でないテンプレート パラメーターで演算子を使用するにはどうすればよいですか?
10_x<'a'>;
または10_<'a'>x;
コンパイルされません。 - そのようなテンプレート化された演算子の実際の使用例はありますか?