Здравствуйте, _NN_, Вы писали:
_NN>Кто знает с чем связано и есть ли надежда ?
Связано, видимо, с тем, что аргумент пользовательского литерала — это литерал же из набора (целое число, вещественное число, символ, строка) — то, что является литералом для парсера.
Какой смысл и какой способ шаблонизировать операции над ними?
Если очень хочется, то достаточно написать перегрузки, которые покроют все эти случаи. (Причём, для строк там другая арность, — возможно, что именно это технически подламывает шаблонизацию)
Если этого хочется много раз, то можно написать макрос
#define VERSATILE_LITERAL(suffix, implementation) \
auto operator "" suffix(unsigned long long x ) { return implementation(x); } \
auto operator "" suffix(long double x ) { return implementation(x); } \
auto operator "" suffix(char x ) { return implementation(x); } \
auto operator "" suffix(wchar_t x ) { return implementation(x); } \
auto operator "" suffix(const char* x, size_t len) { return implementation(x); } \
auto operator "" suffix(const wchar_t* x, size_t len) { return implementation(x); } \
//endmacro
http://ideone.com/CGSVW5
Но, кажется, пользовательские литералы предполагают какой-то один тип. Например, число. Или, например, строку.