diff options
Diffstat (limited to 'nihil.util/construct.ccm')
| -rw-r--r-- | nihil.util/construct.ccm | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/nihil.util/construct.ccm b/nihil.util/construct.ccm index 0a0d85d..894a446 100644 --- a/nihil.util/construct.ccm +++ b/nihil.util/construct.ccm @@ -8,14 +8,15 @@ namespace nihil { // A functor that constructs objects of an arbitrary type. // Useful for std::views::transform. template <typename T> -struct construct_fn { - auto operator()(this construct_fn const &, auto &&...args) -> T +struct construct_fn final +{ + [[nodiscard]] auto operator()(this construct_fn const &, auto &&...args) -> T { return T(std::forward<decltype(args)>(args)...); } }; -export template<typename T> +export template <typename T> inline constexpr auto construct = construct_fn<T>{}; -} +} // namespace nihil |
