这是交易。我正在尝试构建一个EditorBuffer类(用于单行的文本编辑)。
该类由两个字符堆(stack<char> before , stack<char> after)
组成,其中前堆栈表示位于“游标”之前的所有字符,而后堆栈表示“游标”之后的所有字符。在下面显示的声明中,我得到了错误error: Invalid use of void expression
,这对我来说完全不同。
以下是方法声明:
void EditorBuffer::moveCursorToEnd()
{
while (!after.empty())
{
before.push(after.pop());
}
}
答案 0 :(得分:6)
std::stack::pop()
不返回任何内容(其返回类型为void
)。你可能想这样做:
before.push(after.top());
after.pop();