| 181 | class TCreateSharedVecObjectS { |
| 182 | public: |
| 183 | static shared_ptr<Base> Create (int dim, bool iscomplex, ARG & ... arg) |
| 184 | { |
| 185 | if (dim == ACTDIM) |
| 186 | { |
| 187 | if (iscomplex) |
| 188 | return make_shared<Object<Vec<ACTDIM,Complex>>> (arg...); |
| 189 | else |
| 190 | return make_shared<Object<Vec<ACTDIM,double>>> (arg...); |
| 191 | } |
| 192 | else return TCreateSharedVecObjectS<Object, Base, ACTDIM-1, ARG...>::Create(dim, iscomplex, arg...); |
| 193 | } |
| 194 | }; |
| 195 | |
| 196 | template <template <class T> class Object, class Base, typename ... ARG> |