I like to draw this distinction: is the initializer a constant?
It’s not a constant if it relies on arguments to the constructor. “This” is an
argument to the constructor.
It’s also not a constant if it involves reading the heap.
So, like you, I would want to see this code done in the
I've seen some code recently that initializes non-POD members via initializers.
For example, SVGAElement has:
AttributeOwnerProxy m_attributeOwnerProxy { *this };
I find this a little disorientating, and would normally expect to see this in
the constructor as m_attributeOwnerProxy(*this),
2 matches
Mail list logo