C++ 重载引用转换

C++ 重载引用转换,c++,reference,type-conversion,implicit-conversion,C++,Reference,Type Conversion,Implicit Conversion,以下类似乎是,但从未调用转换运算符: class A { public: operator A() const { std::cout << "A() called" << std::endl; return *this; } operator A&() { std::cout << "A&() called" << std::endl; return *this; } operator const A&() c

以下类似乎是,但从未调用转换运算符:

class A
{
public:
  operator A() const { std::cout << "A() called" << std::endl; return *this; }
  operator A&() { std::cout << "A&() called" << std::endl; return *this; }
  operator const A&() const { std::cout << "const A&() called" << std::endl; return *this; }
};
A类
{
公众:

操作符A()const{std::cout这里引用12.3.2

转换函数从不用于将(可能符合cv条件的)对象转换为(可能符合cv条件的)相同对象类型(或对其的引用)


另外,在gcc上使用
-Wall-Wextra-pedantic-ansi
给了我:
警告:此语句对静态强制转换没有影响。
(另外,尝试它会给你一些不错的编译器错误消息)。

这里引用12.3.2

转换函数从不用于将(可能符合cv条件的)对象转换为(可能符合cv条件的)相同对象类型(或对其的引用)


另外,在gcc上使用
-Wall-Wextra-pedantic-ansi
给了我:
警告:此语句对静态强制转换没有影响。
(另外,尝试一下它会给你一些不错的编译器错误消息).

我肯定有人会引用标准,但在此期间我会陈述显而易见的:这根本没有任何意义。我肯定有人会引用标准,但在此期间我会陈述显而易见的:这根本没有任何意义。