c++ - running into trouble with constexpr -
i run trouble while initializing class constants:
why initialisation pointer member in same class results error? error comes without using class "use"!
class { private: int a; const int* const aptr; public: constexpr a( int _a): a(_a) , aptr( &a) // why aptr not initialized? {} }; class data { } d1; class b { private: data* dptr1; public: constexpr b(data* _p): dptr1( _p) {} }; class use { static constexpr a{2}; // fail! error: field initializer not constant static constexpr b b{&d1}; // works };
the code valid, , clang accepts it; seems g++ bug. address of use::a.a address constant expression, since evaluates address of object static storage duration, can used initialize constexpr object.
Comments
Post a Comment