Немного красивее для mongodb.version () 3.0
db.collection.aggregate([
{$match: {created_at:{$exists:1}}},
{$group: {
_id: {$add:[
{$dayOfYear: "$created_at" },
{$multiply: [{$year: "$created_at"}, 1000]}
]},
count: {$sum: 1 }
}},
{$sort:{_id:-1}}
])
Объявление A b()
означает, что b
является функцией сигнатуры A ()
, несмотря на то, что она смешана с объявлениями переменных a
и c
типа A
. Следующие изменения в примере кода делают его более понятным:
struct X {};
struct A
{
A() : m_() {}
A(X m) : m_(m) {}
X m_;
};
int main()
{
X x;
A a, b(x), c(X);
...
}
Выходные данные:
A
A
A (X)
blockquote>Таким образом,
a
иb
являются значениями по умолчанию и значения построены, соответственно, ноc
является объявлением функции и, следовательно, другого типа.