几乎所有 C++ 编译器都实现了非标准#pragma once
功能,但 C++ 标准将其排除在外。
C++ 标准中排除了为什么#pragma once
或某些语言结构的通常解释是硬链接和复制的头文件会破坏或激发编译器的启发式。公平地说,启发式算法通常与 C++ 哲学不兼容,但关于简单的破坏:有许多有用的语言特性可以破坏,不仅. 管理此类损坏的正常 C++ 方法是让编译器在可疑情况下发出可选警告。毕竟,C++ 的设计目的是让一个程序在希望这样做时不安全和/或不可移植。此外,它的不安全性和/或不可移植性非常小。只是没那么容易被滥用。#pragma once
#pragma once
#pragma once
#pragma once
当通常包含其他可滥用但有用的语言功能时,为什么将其#pragma once
排除在标准之外? 有什么特别之处吗?#pragma once
另外,在哪里可以阅读标准委员会最近对此事的审议?是否有某个委员会成员或委员会追随者发表了最近的辩论摘要?