VS10 C ++ Ошибка C2833: «строка оператора» не является распознанным оператором или типом - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь создать пользовательский оператор operator ""_exp для Exponent класса, который я мог бы назвать оператором так:

std::cout << 10.5 * 2._exp << '\n';

Мой остаток кода:

struct Exponent
{
    long double value;
};

Exponent operator ""_exp(long double exponent)
{
    return exponent;
}

Я использую Visual Studio 10 компилятор и получаю C2883 ошибку:

Error C2833: 'operator string' is not a recognized operator or type

Я пытался:

Я нашел список возможных пользовательских операторов, но не смог найти operator "".https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/ds533389(v%3dvs.100)

Вопрос: Может кто-нибудь сказать мне, возможно ли иметь operator ""_exp" в Visual Studio 2010 ?Или, может быть, есть другой способ добиться этого?

1 Ответ

0 голосов
/ 26 февраля 2019

Microsoft Visual Studio 10 не является компилятором C ++ 11.

Их первый компилятор, который полностью поддерживает C ++ 11 (включая, следовательно, определяемые пользователем литералы , что вы пытаетесьиспользовать) является MSVC2017.

Наконец, обратите внимание, что 10.5 является double, не a long double.

...