fix narrowing

This commit is contained in:
Sébastien Loriot 2023-04-26 09:55:14 +02:00
parent c0ec1b96f5
commit 72624bb0f1
2 changed files with 10 additions and 1 deletions

View File

@ -69,7 +69,7 @@ public:
template <class T1, class T2, class T3>
VectorC3(T1 &&x, T2 &&y, T3 &&z)
: base(Rep{std::forward<T1>(x), std::forward<T2>(y), std::forward<T3>(z)}) {}
: base(fwd_make_array<FT_>(std::forward<T1>(x), std::forward<T2>(y), std::forward<T3>(z))) {}
VectorC3(const FT_ &x, const FT_ &y, const FT_ &z, const FT_ &w)
: base( w != FT_(1) ? CGAL::make_array<FT_>(x/w, y/w, z/w)

View File

@ -54,6 +54,15 @@ make_array(const T & t, const Args & ... args)
return a;
}
template< typename T, typename... Args >
BOOST_CXX14_CONSTEXPR
std::array< T, sizeof...(Args) >
fwd_make_array(Args && ... args)
{
std::array< T, sizeof...(Args) > a = { { static_cast<T>(args)... } };
return a;
}
// Functor version
struct Construct_array