Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果对象实例创建为静态而没有外部链接,是否存在执行链接时间约束检查的任何方式,反之亦然?
例如:
// test.cpp // correct namespace{ static MyObject obj; } //test.h struct Obj { // wrong static MyObject m_obj; }
在这种情况下,链接错误作为诊断消息是可以的。
据我了解,不可能在编译时创建类似的东西。
不好的方式,但你可以使用宏(我不认为这是你需要的)
#define MyObject MyObject ... #ifdef MyObject #error somemessagethere #endif
或者只需在 .h 文件中的声明之前键入 extern
我记得,在函数外部使用的静态关键字意味着变量/函数实例应该只存在于当前模块中。