Two examples showing a bit more convenient way to implement named parameters.
8 template<class T> struct D : public T
11 D(const T &tt) : T(tt) {};
13 template<class X> struct TA : public T {
15 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,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,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,x));
41 //Itt csinalunk valamit
53 d().setA(5.5).setB(10).setC(1.5e12);