8 template<class T> struct D
12 D(const T &tt) :t(tt) {};
14 template<class X> struct TA : public T {
16 TA(const T &t,const X& x) : T(t), a(x) {};
18 template<class X> D<TA<X> > setA(const X &x) {
19 return D<TA<X> >(TA<X>(this->t,x));
22 template<class X> struct TB : public T {
24 TB(const T &t,const X& x) : T(t), b(x) {};
27 template<class X> D<TB<X> > setB(const X &x) {
28 return D<TB<X> >(TB<X>(this->t,x));
31 template<class X> struct TC : public T {
33 TC(const T &t,const X& x) : T(t), c(x) {};
36 template<class X> D<TC<X> > setC(const X &x) {
37 return D<TC<X> >(TC<X>(this->t,x));
41 //Itt csinalunk valamit
53 d().setA(5.5).setB(10).setC(1.5e12);