diff --git a/sprout/array/make_array.hpp b/sprout/array/make_array.hpp index cedc1538..6c84e775 100644 --- a/sprout/array/make_array.hpp +++ b/sprout/array/make_array.hpp @@ -33,11 +33,25 @@ namespace sprout { template inline SPROUT_CONSTEXPR sprout::array::type, sizeof...(Types)> make_array(Types&&... args) { - typedef sprout::array< - typename sprout::common_decay::type, - sizeof...(Types) - > type; - return type{{typename sprout::common_decay::type(SPROUT_FORWARD(Types, args))...}}; + typedef typename sprout::common_decay::type value_type; + typedef sprout::array type; + return type{{value_type(SPROUT_FORWARD(Types, args))...}}; + } + + // + // make_array_without_narrowing + // + template + inline SPROUT_CONSTEXPR sprout::array::type, sizeof...(Types)> + make_array_without_narrowing(Types&&... args) { + return sprout::array::type, sizeof...(Types)>{{SPROUT_FORWARD(Types, args)...}}; + } + template + inline SPROUT_CONSTEXPR sprout::array::type, sizeof...(Types)> + make_array_without_narrowing(Types&&... args) { + typedef typename sprout::common_decay::type value_type; + typedef sprout::array type; + return type{{SPROUT_FORWARD(Types, args)...}}; } //