This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: c++0x N2756 Non-static data member initializers status


I checked the gcc code, if anyone wants to try to add this.
latest of cvs as of today

gcc/cp/decl.c : 9141
add a cxx_dialect == cxx0x check so it doesn't error on the static only member init


gcc/cp/init.c perform_member_init
If the member has no initialization, grab the init tree and perform the construction with that. little more complicated....


add parser code.

In the meantime I'll just use this wrapper class:

template <typename TYPE, TYPE value >
class defaulted
{
public:
   defaulted() : _t(value) { }
   operator TYPE & () { return _t; }
   TYPE & operator =(const TYPE & other) { _t = other; }
private:
   TYPE _t;
};

template <typename TYPE>
class defaulted_ptr
{
public:
defaulted_ptr() : _t(0) { } operator TYPE * & () { return _t; }
TYPE * & operator =(const TYPE * &other) { _t = other; }
private:
TYPE * _t;
};



int main() { defaulted<bool, true> a; defaulted_ptr<int *> b; }

Chris

Chris wrote:
Hi,

I noticed N2756 is not on the gcc c++0x status page (probably because it's new). Any ideas if and when this would be implemented? It would be life-changing.

class A {
public:
A() { }
private:
   int x = 5;
   int y = 0;
};









Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]