我知道模板函数在链接时不会受到多个定义的影响,就像在类内部定义的成员函数一样,默认情况下是内联的。还,constexpr
对象具有内部链接,但模板变量具有外部链接(我的意思是在命名空间范围内,对于 C++14,这两种情况都是如此)。
关于什么?
template<class T>
constexpr T i_am_odr_safe{};
Does i_am_odr_safe
C++14 中有外部或内部链接吗?对于函数模板等多重定义是否安全?
换句话说,就是i_am_odr_safe
ODR 安全吗?
This is 核心问题1713 http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1713,IIRC的方向是这个变量模板会有外部链接。
不,这个问题还没有解决,这就是为什么 LWG 决定抹灰inline
当它采用 A+B2 时,遍布标准库中的变量模板P0604R0 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0607r0.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)