Оператор 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 по Страуструпу)? Можете ли вы придумать обходной путь?

Ответы на вопрос(2)

Ваш ответ на вопрос