Re: Шаблонные пользовательские операции преобразования
От: Кодт Россия  
Дата: 28.06.17 07:58
Оценка:
Здравствуйте, _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

Но, кажется, пользовательские литералы предполагают какой-то один тип. Например, число. Или, например, строку.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.