Make sure math::vector,point are trivially default constructible
This commit is contained in:
parent
68aedbf2fa
commit
aeb0f4a799
3 changed files with 6 additions and 8 deletions
|
|
@ -43,6 +43,8 @@ namespace psemek::math::detail
|
||||||
|
|
||||||
T data[N];
|
T data[N];
|
||||||
|
|
||||||
|
type() = default;
|
||||||
|
|
||||||
type(dynamic_dimensions<N>){}
|
type(dynamic_dimensions<N>){}
|
||||||
|
|
||||||
dynamic_dimensions<N> dimensions() const { return {}; }
|
dynamic_dimensions<N> dimensions() const { return {}; }
|
||||||
|
|
@ -59,6 +61,8 @@ namespace psemek::math::detail
|
||||||
{
|
{
|
||||||
static constexpr std::size_t size = 0;
|
static constexpr std::size_t size = 0;
|
||||||
|
|
||||||
|
type() = default;
|
||||||
|
|
||||||
type(dynamic_dimensions<0>){}
|
type(dynamic_dimensions<0>){}
|
||||||
|
|
||||||
dynamic_dimensions<0> dimensions() const { return {}; }
|
dynamic_dimensions<0> dimensions() const { return {}; }
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,7 @@ namespace psemek::math
|
||||||
: coords(dimensions)
|
: coords(dimensions)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
point()
|
point() = default;
|
||||||
: coords({})
|
|
||||||
{}
|
|
||||||
|
|
||||||
explicit point(std::size_t size) requires (N == dynamic)
|
explicit point(std::size_t size) requires (N == dynamic)
|
||||||
: coords({.size = size})
|
: coords({.size = size})
|
||||||
|
|
@ -37,7 +35,6 @@ namespace psemek::math
|
||||||
template <typename ... Args>
|
template <typename ... Args>
|
||||||
requires(N != dynamic && sizeof...(Args) == N && detail::all_convertible_to<T, Args...>::value)
|
requires(N != dynamic && sizeof...(Args) == N && detail::all_convertible_to<T, Args...>::value)
|
||||||
point(Args && ... args)
|
point(Args && ... args)
|
||||||
: coords({})
|
|
||||||
{
|
{
|
||||||
auto out = values().begin();
|
auto out = values().begin();
|
||||||
((*out++ = args), ...);
|
((*out++ = args), ...);
|
||||||
|
|
|
||||||
|
|
@ -29,9 +29,7 @@ namespace psemek::math
|
||||||
: coords(dimensions)
|
: coords(dimensions)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
vector()
|
vector() = default;
|
||||||
: coords({})
|
|
||||||
{}
|
|
||||||
|
|
||||||
explicit vector(std::size_t size) requires (N == dynamic)
|
explicit vector(std::size_t size) requires (N == dynamic)
|
||||||
: coords({.size = size})
|
: coords({.size = size})
|
||||||
|
|
@ -40,7 +38,6 @@ namespace psemek::math
|
||||||
template <typename ... Args>
|
template <typename ... Args>
|
||||||
requires(N != dynamic && sizeof...(Args) == N && detail::all_convertible_to<T, Args...>::value)
|
requires(N != dynamic && sizeof...(Args) == N && detail::all_convertible_to<T, Args...>::value)
|
||||||
vector(Args && ... args)
|
vector(Args && ... args)
|
||||||
: coords({})
|
|
||||||
{
|
{
|
||||||
auto out = values().begin();
|
auto out = values().begin();
|
||||||
((*out++ = args), ...);
|
((*out++ = args), ...);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue