在标准化文件ABI for std::hardware_{constructive,destructive}_interference_size中,建议将硬件干扰大小声明为静态参考,以减轻某些违反ODR的风险。
static constexpr const std::size_t& hardware_destructive_interference_size = implementation-defined;
static constexpr const std::size_t& hardware_constructive_interference_size = implementation-defined;
我想知道为什么将这些变量声明为引用而不是像const对象这样更好的选择:
static constexpr std::size_t hardware_destructive_interference_size = implementation-defined;
static constexpr std::size_t hardware_constructive_interference_size = implementation-defined;