我得到一个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