我得到一個gcc警告代碼編譯罰款和警告免費叮噹聲和VC + +,所以我認爲這是gcc特定的。這是代碼:如何解決-Wsubobject-linkage警告?
namespace myns {
using TokenList = std::vector<size_t>;
using RuleList = std::vector<size_t>;
using RulePathPair = std::pair<size_t, TokenList>;
using CandidatesCollection = struct { std::map<size_t, TokenList> tokens; std::set<RulePathPair> rules; };
class A {
private:
CandidatesCollection _candidates;
};
} // namespace myns
和警告:
警告: 'myns名字:: A' 有一個字段「myns名字:: A :: _考生,其類型有沒有聯動[ - Wsubobject-linkage]
這是什麼意思和如何擺脫警告?
與您的問題無關,但您爲什麼使用'using'來爲結構定義類型別名?結構名稱本身就是類型名稱。不是說這是錯的,只是它很奇怪。 :) –
對,我在想同樣的事情,但我想保持那裏的模式。我有一些其他這樣的定義,就像這樣的表示。 –
它讓我想起了舊的C typedef結構模式 – RyanP