std 命名空間中是否有任何型別串列?我正在撰寫從 uml 圖到 C 代碼的翻譯器,應該在需要時添加 std::。我的程式應該如何知道字串有前綴 std:: 而 int 沒有。
uj5u.com熱心網友回復:
std 命名空間中是否有任何型別串列?
所有這些都在標準以及涵蓋標準的任何檔案中提到。然而,我所知道的并沒有簡單的清單。
我的程式應該如何知道字串有前綴 std:: 而 int 沒有。
您的程式應該知道它int不在命名空間中,因為它是一個關鍵字。您可以在標準的 [tab:lex.key] 表中找到所有關鍵字的串列。
但是,僅僅因為識別符號是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。讓圖表的作者確保他們的名字被正確限定。如果翻譯者必須進行猜測,那么就會出現猜測錯誤的情況。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/397886.html
上一篇:解構式找不到我的命名空間方法
