По умолчанию и значения построенные объекты имеют разные типы

Немного красивее для 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}}
])
0
задан Erwin411 26 June 2019 в 23:14
поделиться

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)

Таким образом, a и b являются значениями по умолчанию и значения построены, соответственно, но c является объявлением функции и, следовательно, другого типа.

0
ответ дан Erwin411 26 June 2019 в 23:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: