Рассмотрим:
struct str {};
str operator"" _X(long double d) {
return str();
}
Это компилируется с помощью g++ 4.7.2 Стена std = С++ 11
но теперь, если я даю двойной:
str operator"" _X(double d) {
return str();
}
Появляется следующее сообщение об ошибке: main.cpp | 3 | error: 'str operator "_X (double)" имеет недопустимый список аргументов
В чем проблема? Связано ли это с "Невозможно переопределить значение встроенного суффикса литерала" (FAQ по Stroustrup)? Можете ли вы придумать обходное решение?