- 考虑一个 C++ 头文件
my_lib.a,在链接中和my_prog链接中都编译了my_lib.a. 该库是在没有使用NDEBUGwhilemy_prog-with的情况下编译的NDEBUG。会导致违反 ODR 吗? - 如果
my_lib.so是共享库怎么办?当然,ODR 在这里无关紧要,因为有 2 个单独的可执行文件,但可能会NDEBUG影响std(或其他)类,从而阻止通过 SO 接口正确传递它们的实例?例如,如果在std::vector中创建了一个实例my_prog,是否可以将它作为参数传递给 SO?可能NDEBUG会影响内存分配等?
标准是否规定了这一点?