From 9289f825f4e2b30b6197e18896780782cd3a088e Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Tue, 30 Jul 2024 00:19:08 +0200 Subject: Add meta module --- asl/meta/BUILD.bazel | 18 ++++++++++++++++++ asl/meta/types.hpp | 14 ++++++++++++++ asl/meta/types_tests.cpp | 16 ++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 asl/meta/BUILD.bazel create mode 100644 asl/meta/types.hpp create mode 100644 asl/meta/types_tests.cpp (limited to 'asl') diff --git a/asl/meta/BUILD.bazel b/asl/meta/BUILD.bazel new file mode 100644 index 0000000..f914bf3 --- /dev/null +++ b/asl/meta/BUILD.bazel @@ -0,0 +1,18 @@ +cc_library( + name = "meta", + hdrs = [ + "types.hpp", + ], + visibility = ["//visibility:public"], +) + +cc_test( + name = "types_tests", + srcs = [ + "types_tests.cpp", + ], + deps = [ + ":meta", + ], +) + diff --git a/asl/meta/types.hpp b/asl/meta/types.hpp new file mode 100644 index 0000000..b5aa192 --- /dev/null +++ b/asl/meta/types.hpp @@ -0,0 +1,14 @@ +#pragma once + +namespace asl { + +template using void_t = void; + +template +inline constexpr bool referenceable = false; + +template +inline constexpr bool referenceable> = true; + +} // namespace asl + diff --git a/asl/meta/types_tests.cpp b/asl/meta/types_tests.cpp new file mode 100644 index 0000000..cab9118 --- /dev/null +++ b/asl/meta/types_tests.cpp @@ -0,0 +1,16 @@ +#include "asl/meta/types.hpp" + +using namespace asl; + +static_assert(referenceable); +static_assert(referenceable); +static_assert(referenceable); +static_assert(!referenceable); +static_assert(referenceable); +static_assert(referenceable); +static_assert(referenceable); +static_assert(!referenceable); +static_assert(!referenceable); +static_assert(!referenceable); + +int main() { return 0; } -- cgit