编译器警告(等级 1)C4692

“function”: 非私有成员的签名包含程序集私有本机类型“native_type”

某个在程序集外部可见的类型包含一个成员函数,该函数的签名包含在程序集外部不可见的本机类型。 因此,如果该成员函数的所包含的类型在程序集外部实例化,则不应调用该成员函数。

有关详细信息,请参阅类型可见性

默认情况下,此警告处于关闭状态。 有关详细信息,请参阅 Compiler Warnings That Are Off by Default

示例

以下示例生成 C4692。

// C4692.cpp
// compile with: /W1 /c /clr
#pragma warning(default:4692)
class Private_Native_Class {};
public class Public_Native_Class {};
public ref class Public_Ref_Class {
public:
   void Test(Private_Native_Class *) {}   // C4692
   void Test2(Public_Native_Class *) {}   // OK
};