| 11 | // Functional constructor call / casting. |
| 12 | template <typename ToType> |
| 13 | struct construct { |
| 14 | template <typename... FromTypes> |
| 15 | ToType operator()(FromTypes&&... fromTypes) const { |
| 16 | return ToType(std::forward<FromTypes>(fromTypes)...); |
| 17 | } |
| 18 | }; |
| 19 | |
| 20 | struct identity { |
| 21 | template <typename U> |