4
如果我有一个基于对C++ 11圈的范围,远程for循环const引用似乎不有所作为
for(auto const &ticket : ticketStrip->tickets()) {
ticket->ClearCalled();
}
为什么我能中呼吁票非const的方法循环,如ClearCalled(),当它没有标记为const?
void Ticket::ClearCalled() { ... }
ClearCalled确实修改了ticket的内部消息,所以它不应该被标记为const。我知道我应该使用
auto &ticket
,但我只是想
auto const &ticket
和编译器所接受它。
类型车票是
boost::shared_ptr<AbstractMainStageTicket>
,并把一些新的代码:
ticket->ClearCalled();
ticket.reset();
使编译器标志了错误复位不是常量。
感谢您的帮助!
我使用Android版的GNU 4.6工具链。
如果你与调用它' - >'暗示'票“是一个迭代器。所以你有一个常量迭代器,而不是一个迭代器来const。什么是门票()类型? – Pubby 2013-04-26 15:39:07
对不起,它实际上是一个智能指针,并且可以回答我的问题,我可以修改智能指针指向的内容,但不能修改智能指针本身。 – 2013-04-26 15:41:58