如何告诉编译器这是一个函数声明而不是数据成员:
typedef std::basic_ostringstream<char16_t> foostringstream;
class TextStream: public foostringstream {
public:
std::forward_list<TextInstruction> output();
};
问题在于编译器(VS2015.3)出于某种恼人的原因,它的印象是它是一个变量。
答案 0 :(得分:0)
问题是你正在创建一个空类,这不是编译器问题。 想象一下,你做了类似
的事情class Empty{}
int main() {
Empty a,b;
assert (&a == &b);
cout << sizeof(Empty)
}
你期望结果是什么?
编译器总是添加填充以确保&amp; a!=&amp; b,这意味着sizeof Empty将是&gt; 0(通常为1)。