我遇到了以下代码的奇怪行为,同时使用g ++ 4.4.3进行初始化.
int main()
{
int x(int());
int y = int();
cout << x << " " << y << endl;
}
Run Code Online (Sandbox Code Playgroud)
结果是:
1 0
"y"的值如预期的那样为0,但x的值奇怪地为"1"!
在VS2008上产生以下链接错误(函数声明,但没有定义):
unresolved external symbol "int __cdecl x(int (__cdecl*)(void))"
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释这个奇怪的g ++行为吗?
我试图在从MongoDB中的集合中读取数据时仅使用索引,因为我有一些大文档,而对于此查询,我只需要一个字段.
事实证明,如果索引是multiKey索引,我就不能拥有indexOnly = true.
这是我做的测试:
db.test.drop()
db.test.insert({a:1})
db.test.ensureIndex({a:1})
db.test.find({a:1}, {_id:0, a:1}).explain()
Run Code Online (Sandbox Code Playgroud)
- > indexOnly = true,isMultiKey = false
db.test.insert({a : [2,3]})
db.test.find({a:1}, {_id:0, a:1}).explain()
Run Code Online (Sandbox Code Playgroud)
- > indexOnly = false,isMultiKey = true
该文件提到的多键索引的一些限制,但不是这一个.有没有人知道如何同时使用multikey和indexonly?