libcopp 2.3.1
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
nostd_test.cpp
Go to the documentation of this file.
1// Copyright 2025 owent
2
3#include <type_traits>
4
5#include "frame/test_macros.h"
6
10
11CASE_TEST(nostd_nullability, nullable) {
12#if (defined(__cplusplus) && __cplusplus >= 201703L) && (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
13 {
14 constexpr auto nullability_compatible_test = copp::nostd::__is_nullability_compatible<void>::value;
15 CASE_EXPECT_FALSE(nullability_compatible_test);
16 }
17#endif
18
19 {
20 constexpr auto nullable_test = std::is_same<copp::nostd::nullable<void*>, void*>::value;
21 CASE_EXPECT_TRUE(nullable_test);
22 }
23
24 {
25 constexpr auto nullable_test = std::is_same<copp::nostd::nullable<const char*>, const char*>::value;
26 CASE_EXPECT_TRUE(nullable_test);
27 }
28
29 {
30 constexpr auto nullable_test = std::is_same<copp::nostd::nullable<void (*)()>, void (*)()>::value;
31 CASE_EXPECT_TRUE(nullable_test);
32 }
33
34 {
35 constexpr auto nullable_test =
36 std::is_same<copp::nostd::nullable<std::shared_ptr<int>>, std::shared_ptr<int>>::value;
37 CASE_EXPECT_TRUE(nullable_test);
38 }
39
40 {
41 constexpr auto nullable_test =
42 std::is_same<copp::nostd::nullable<std::unique_ptr<int>>, std::unique_ptr<int>>::value;
43 CASE_EXPECT_TRUE(nullable_test);
44 }
45
46 {
47 constexpr auto nullable_test =
48 std::is_same<copp::nostd::nullable<copp::memory::strong_rc_ptr<int>>, copp::memory::strong_rc_ptr<int>>::value;
49 CASE_EXPECT_TRUE(nullable_test);
50 }
51}
52
53CASE_TEST(nostd_nullability, nonnull) {
54 {
55 constexpr auto nullable_test = std::is_same<copp::nostd::nonnull<void*>, void*>::value;
56 CASE_EXPECT_TRUE(nullable_test);
57 }
58
59 {
60 constexpr auto nullable_test = std::is_same<copp::nostd::nonnull<const char*>, const char*>::value;
61 CASE_EXPECT_TRUE(nullable_test);
62 }
63
64 {
65 constexpr auto nullable_test = std::is_same<copp::nostd::nonnull<void (*)()>, void (*)()>::value;
66 CASE_EXPECT_TRUE(nullable_test);
67 }
68
69 {
70 constexpr auto nullable_test =
71 std::is_same<copp::nostd::nonnull<std::shared_ptr<int>>, std::shared_ptr<int>>::value;
72 CASE_EXPECT_TRUE(nullable_test);
73 }
74
75 {
76 constexpr auto nullable_test =
77 std::is_same<copp::nostd::nonnull<std::unique_ptr<int>>, std::unique_ptr<int>>::value;
78 CASE_EXPECT_TRUE(nullable_test);
79 }
80
81 {
82 constexpr auto nullable_test =
83 std::is_same<copp::nostd::nonnull<copp::memory::strong_rc_ptr<int>>, copp::memory::strong_rc_ptr<int>>::value;
84 CASE_EXPECT_TRUE(nullable_test);
85 }
86}
87
98
99CASE_TEST(nostd_type_traits, detected_or) {}
LIBCOPP_UTIL_NOSTD_TYPE_TRAITS_CONDITION_NESTED_TYPE_AS_MEMBER(test_nostd_type_traits_a, type2, type2, bool)
LIBCOPP_UTIL_NOSTD_TYPE_TRAITS_CONDITION_NESTED_TYPE_AS_MEMBER(test_nostd_type_traits_a, type1, type1, bool)
#define CASE_EXPECT_FALSE(c)
Definition test_macros.h:98
#define CASE_TEST(test_name, case_name)
Definition test_macros.h:47
#define CASE_EXPECT_TRUE(c)
Definition test_macros.h:97