mirror of
https://github.com/boostorg/static_string.git
synced 2026-01-26 00:22:20 +01:00
Make static_string trivially copyable
This commit is contained in:
committed by
Gennaro Prota
parent
cd546285c4
commit
37a557d937
@@ -301,6 +301,53 @@ testTWS(Arithmetic value, const wchar_t* wstr_expected = nullptr)
|
||||
}
|
||||
}
|
||||
|
||||
// done
|
||||
static
|
||||
void
|
||||
testTypeTraits()
|
||||
{
|
||||
{
|
||||
using S = static_string<0>;
|
||||
static_assert(std::is_trivially_copyable<S>::value, "");
|
||||
static_assert(!std::is_trivially_default_constructible<S>::value, "");
|
||||
static_assert(std::is_trivially_copy_constructible<S>::value, "");
|
||||
static_assert(std::is_trivially_move_constructible<S>::value, "");
|
||||
static_assert(std::is_trivially_copy_assignable<S>::value, "");
|
||||
static_assert(std::is_trivially_move_assignable<S>::value, "");
|
||||
static_assert(std::is_trivially_destructible<S>::value, "");
|
||||
}
|
||||
{
|
||||
using S = static_string<1>;
|
||||
static_assert(std::is_trivially_copyable<S>::value, "");
|
||||
static_assert(!std::is_trivially_default_constructible<S>::value, "");
|
||||
static_assert(std::is_trivially_copy_constructible<S>::value, "");
|
||||
static_assert(std::is_trivially_move_constructible<S>::value, "");
|
||||
static_assert(std::is_trivially_copy_assignable<S>::value, "");
|
||||
static_assert(std::is_trivially_move_assignable<S>::value, "");
|
||||
static_assert(std::is_trivially_destructible<S>::value, "");
|
||||
}
|
||||
{
|
||||
using S = static_string<20>;
|
||||
static_assert(std::is_trivially_copyable<S>::value, "");
|
||||
static_assert(!std::is_trivially_default_constructible<S>::value, "");
|
||||
static_assert(std::is_trivially_copy_constructible<S>::value, "");
|
||||
static_assert(std::is_trivially_move_constructible<S>::value, "");
|
||||
static_assert(std::is_trivially_copy_assignable<S>::value, "");
|
||||
static_assert(std::is_trivially_move_assignable<S>::value, "");
|
||||
static_assert(std::is_trivially_destructible<S>::value, "");
|
||||
}
|
||||
{
|
||||
using S = static_string<400>;
|
||||
static_assert(std::is_trivially_copyable<S>::value, "");
|
||||
static_assert(!std::is_trivially_default_constructible<S>::value, "");
|
||||
static_assert(std::is_trivially_copy_constructible<S>::value, "");
|
||||
static_assert(std::is_trivially_move_constructible<S>::value, "");
|
||||
static_assert(std::is_trivially_copy_assignable<S>::value, "");
|
||||
static_assert(std::is_trivially_move_assignable<S>::value, "");
|
||||
static_assert(std::is_trivially_destructible<S>::value, "");
|
||||
}
|
||||
}
|
||||
|
||||
// done
|
||||
static
|
||||
void
|
||||
@@ -7467,6 +7514,8 @@ runTests()
|
||||
constexpr auto cxper = testConstantEvaluation();
|
||||
static_cast<void>(cxper);
|
||||
|
||||
testTypeTraits();
|
||||
|
||||
testConstruct();
|
||||
|
||||
testAssignment();
|
||||
|
||||
Reference in New Issue
Block a user