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