gpt4 book ai didi

C++:如何将 libc 声明强制为 std::?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:45:58 24 4
gpt4 key购买 nike

因此,我发现自己在我的 C++ 程序中需要 libc。但是,我不喜欢将它散布在全局 namespace 中的想法。理想情况下,我想强制整个 libc 进入 std:: 命名空间,所以我必须执行 std::memcpy 而不是 memcpy.

这可能吗?如何?如果需要,我愿意使用特定于编译器的宏(我只针对 MS VC++ 10.0 和 GCC 4.6)。

编辑:我的字面意思是“强制声明到 std 中”——这样它们在没有 std::前缀的情况下是不可调用的。此外,我包括 cstdio,而不是 stdio.h

谢谢!

最佳答案

你不能这样做,除非它已经完成了。

std 命名空间为标准库保留,禁止向该命名空间添加新成员。因此,如果 C header 尚未嵌入到 std 中,那么您别无选择,只能接受它。

另一方面,您可以完美地创建一个新的命名空间,cstd,并使用 using 指令将全局命名空间中的符号带入其中……但是它不会让它们从全局命名空间中消失

关于C++:如何将 libc 声明强制为 std::?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4909420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com