为什么在引入静态全局变量(内部链接)和未命名的命名空间中的符号(外部链接,无论如何都无法从外部引用它)之间进行区分?
这些原因是否仍然有效,还是有新的原因?
除了匿名全局(或命名空间范围)联合必须具有
static
的任意规则之外,还剩下什么地方,它们又是什么?对于积分,如果没有充分的理由使它们有所不同,是否有要求使它们相等的要求?
当C ++引入名称空间(C ++ 98),特别是未命名的名称空间时,由于热情高涨,静态全局变量被弃用,不如新事物,尽管C ++ 11对此进行了还原:
弃用static关键字…不再?
在C ++ 11之前,不能将具有内部链接的符号用作模板参数:为什么C ++ 03要求模板参数具有外部链接?
看起来您基本上已经回答了自己的问题,除了“符合要求的实现”位;也许您应该考虑删除下半部分,然后将其发布为答案?还是这里还没有答案?
—
凯尔·斯特兰德
@KyleStrand重新格式化了所有内容。
—
Deduplicator 2015年