| 175 | |
| 176 | template <typename... T> |
| 177 | inline void ctor_signature(std::string& s, const std::string& classname) { |
| 178 | s.assign(classname); |
| 179 | s += "("; |
| 180 | int n = sizeof...(T); |
| 181 | int i = 0; |
| 182 | // Using initializer list as c++11 implementation of a fold expression |
| 183 | (void)std::initializer_list<int>{ |
| 184 | (s += get_return_type<T>(), s += (++i == n ? "" : ", "), 0)... }; |
| 185 | s += ")"; |
| 186 | } |
| 187 | template <typename Class> |
| 188 | class Constructor_Base { |
| 189 | public: |