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