首页 > 解决方案 > 重载的运算符首选项

问题描述

编译器必须在这里选择两个运算符中的哪一个?

#include <iostream>

struct A
{
    operator char() { return 'A'; }
};

struct B : A
{
    operator auto() { return 'B'; }
};

int main()
{
    std::cout << B().operator char();
}

Clang 打印AGCC打印Bhttps ://gcc.godbolt.org/z/v6c5Ta9Mf

标签: c++c++14language-lawyer

解决方案


推荐阅读