建議使用 Visual Studio 2017

編譯器錯誤 C3066

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

有多種方式可以用這些引數呼叫這種類型的物件

編譯器偵測到涉及代理模稜兩可函式呼叫。

下列範例會產生 C3066:

// C3066.cpp  
template <class T, class U> void func(T*, U*){}  
  
typedef void (*PF)(const int*, const char*);  
typedef void (*PF1)(const int*, volatile char*);  
  
struct A {  
   operator PF() const {  
      return func;  
   }  
  
   operator PF1() {  
      return func;  
   }  
  
   operator PF1() const  {  
      return func;  
   }  
  
};  
  
int main() {  
   A a;  
   int i;  
   char c;  
  
   a(&i, &c);   // C3066  
   a(&i, (const char *) &c);   // OK  
}  

顯示: