Перегруженные операторы не работают в отладчике, но документы говорят, что они должны - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть тривиальный тестовый проект, который определяет класс с перегрузкой оператора.

struct v2
{
    float x;
    float y;

    v2 operator+ (const v2& rhs) const
    {
        return { x + rhs.x, y + rhs.y };
    }
};

int main()
{
    v2 a = { 0, 1 };
    v2 b = { 2, 3 };
    v2 c = a + b;
    return 0;
}

Если я ставлю точку останова в операторе возврата и ввожу a + b в окне просмотра, я получаю следующую ошибку: no operator "+" matches these operands Но a.operator+(b) будет работать так отчетливоЯ не могу найти ничего, что говорит, что это не поддерживается.Фактически, я могу найти документы , которые явно говорят, что перегрузки операторов поддерживаются оценщиком выражений для собственного C ++ еще до VS 2010.

Я выполнилэто в VS 2015 и VS 2017, и оба не в состоянии оценить это.Я пытался реализовать оператор как функцию-член и функцию верхнего уровня, и опять же не радость.

У кого-нибудь есть или источник, или кто-то понимает, почему использование перегруженных операторов в окне просмотра не работает?Должно ли это работать?Есть какие-то тонкие настройки, которые нужно изменить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...