test_mp_append.cppΒΆ

// Copyright (C) 2017, 2019, 2022 by Mark Melton
//

#include <gtest/gtest.h>
#include "core/mp/append.h"
#include "core/mp/constants.h"

using namespace core;
using ::testing::StaticAssertTypeEq;

TEST(MP, Append)
{
    using L = mp::list<mp_a,mp_b,mp_c>;
    {
        using M = mp::list<mp_d,mp_e>;
        using A = mp::append_t<L,M>;
        using R = mp::list<mp_a,mp_b,mp_c,mp_d,mp_e>;
        StaticAssertTypeEq<R,A>();
    }
    {
        using M = mp::list<>;
        using A = mp::append_t<L,M>;
        using R = mp::list<mp_a,mp_b,mp_c>;
        StaticAssertTypeEq<R,A>();
    }
    {
        using M = mp::list<>;
        using A = mp::append_t<M,L>;
        using R = mp::list<mp_a,mp_b,mp_c>;
        StaticAssertTypeEq<R,A>();
    }
}

int main(int argc, char *argv[])
{
    ::testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}