Windows 7 64 SP1 -- MongoDB 2.2.0-rc2 -- Boost 1.42 -- MS VS 2010 Ultimate -- C++ 驱动程序
我写了这个函数:
void printQuery(DBClientConnection &c, std::string &dc, const Query &qu = BSONObj(), std::string sortby = "" )
这个片段:
auto_ptr<DBClientCursor> cursor;
cursor = c.query(dc,qu.sort(sortby))
引发错误:
error C2663: 'mongo::Query::sort' : 2 overloads have no legal conversion for 'this' pointer.
sort (const string &field, int asc=1)
应该是适用的过载。我相信这与使用const Query&
它的成员函数有关sort
。但是,如果我将其更改为Query&
没有const
,那么我的参数初始化= BSONObj()
会引发:
cannot convert from 'mongo::BSONObj' to 'mongo::Query &'
如果我按值传递,那么它编译得很好。
有没有办法避免任何一个错误(除了按值传递)?谢谢!