提问人:lorakis 提问时间:12/30/2021 最后编辑:lorakis 更新时间:12/30/2021 访问量:77
如何知道某些数据类型是否来自 std?
How to know if some data type is from std?
问:
std 命名空间内是否有任何类型列表?我正在编写从 uml 图到 c++ 代码的翻译器,应该在需要时添加 std::。我的程序应该如何知道字符串有前缀 std:: 而 int 没有。
答:
0赞
eerorika
12/30/2021
#1
std 命名空间内是否有任何类型列表?
所有这些都在标准中提及,以及涵盖该标准的任何文档。然而,据我所知,没有简单的清单。
我的程序应该如何知道字符串有前缀 std:: 而 int 没有。
您的程序应该知道它不在命名空间中,因为它是一个关键字。您可以在标准的 [tab:lex.key] 表中找到所有关键字的列表。int
但是,仅仅因为标识符是 ,并不意味着它在命名空间中。例:string
std
namespace not_std {
struct string {};
string s; // this isn't std::string
}
#include <string>
using std::string;
string s; // this is std::string
只有在后一种情况下,添加限定符才是正确的。std::
我正在编写从 uml 图到 c++ 代码的转换器
在我看来,你的翻译应该翻译成 .让图表的作者确保他们的名字是正确的。如果翻译人员必须进行猜测,那么就会有猜测错误的情况。string
string
std::string
std::string
评论
0赞
lorakis
12/30/2021
[tab:lex.key]正是我需要的,谢谢!
评论
using namespace std
vector
std::vector
using namespace std
std::