[vector] Adjust construction criteria
This commit is contained in:
parent
c58bfa35fb
commit
1198fb2468
|
@ -233,7 +233,8 @@ struct hb_vector_t
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T = Type,
|
template <typename T = Type,
|
||||||
hb_enable_if (std::is_trivially_copy_assignable<T>::value)>
|
hb_enable_if (std::is_trivially_constructible<T>::value ||
|
||||||
|
!std::is_default_constructible<T>::value)>
|
||||||
void
|
void
|
||||||
grow_vector (unsigned size)
|
grow_vector (unsigned size)
|
||||||
{
|
{
|
||||||
|
@ -241,7 +242,8 @@ struct hb_vector_t
|
||||||
length = size;
|
length = size;
|
||||||
}
|
}
|
||||||
template <typename T = Type,
|
template <typename T = Type,
|
||||||
hb_enable_if (!std::is_trivially_copy_assignable<T>::value)>
|
hb_enable_if (!std::is_trivially_constructible<T>::value &&
|
||||||
|
std::is_default_constructible<T>::value)>
|
||||||
void
|
void
|
||||||
grow_vector (unsigned size)
|
grow_vector (unsigned size)
|
||||||
{
|
{
|
||||||
|
@ -253,14 +255,14 @@ struct hb_vector_t
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T = Type,
|
template <typename T = Type,
|
||||||
hb_enable_if (std::is_trivially_copy_assignable<T>::value)>
|
hb_enable_if (std::is_trivially_destructible<T>::value)>
|
||||||
void
|
void
|
||||||
shrink_vector (unsigned size)
|
shrink_vector (unsigned size)
|
||||||
{
|
{
|
||||||
length = size;
|
length = size;
|
||||||
}
|
}
|
||||||
template <typename T = Type,
|
template <typename T = Type,
|
||||||
hb_enable_if (!std::is_trivially_copy_assignable<T>::value)>
|
hb_enable_if (!std::is_trivially_destructible<T>::value)>
|
||||||
void
|
void
|
||||||
shrink_vector (unsigned size)
|
shrink_vector (unsigned size)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue