mercredi 29 juin 2016

Is an empty constructor with initializer list considered trivial?

Is the following constructor considered trivial?

struct A
{
    A() : a(nullptr) {}
private:
    int* a;
};

These examples makes me a little confused. With c++11 this should also be possible:

struct A
{
private:
    int* a{nullptr};
};

and a should be properly initialized to nullptr. Here I did not define the constructor, but it should have the same form as the first implementation. Is either of these classes considered trivial?

The purpose of me asking is if I can expect move/copy constructors and assignment operators being automatically generated.

Aucun commentaire:

Enregistrer un commentaire