diff --git a/source/tinystl/container/array.h b/source/tinystl/container/array.h index aca4363..821f4c7 100644 --- a/source/tinystl/container/array.h +++ b/source/tinystl/container/array.h @@ -120,4 +120,4 @@ constexpr auto operator<=>(const array &lhs, const array &rhs) { ); } -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/iterator/back_insert_iterator.h b/source/tinystl/iterator/back_insert_iterator.h index ef7da30..e6f5a4d 100644 --- a/source/tinystl/iterator/back_insert_iterator.h +++ b/source/tinystl/iterator/back_insert_iterator.h @@ -2,7 +2,7 @@ #include -#include "tinystl/iterator/iterator.h" +#include "tinystl/iterator/iterator_tag.h" namespace tinystl { @@ -47,4 +47,4 @@ back_insert_iterator back_inserter(Container &c) { return back_insert_iterator(c); } -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/iterator/front_insert_iterator.h b/source/tinystl/iterator/front_insert_iterator.h index 1a6cc4d..5e6ae8b 100644 --- a/source/tinystl/iterator/front_insert_iterator.h +++ b/source/tinystl/iterator/front_insert_iterator.h @@ -2,7 +2,7 @@ #include -#include "tinystl/iterator/iterator.h" +#include "tinystl/iterator/iterator_tag.h" namespace tinystl { @@ -47,4 +47,4 @@ template front_insert_iterator front_inserter(Container &c) { return front_insert_iterator(c); } -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/iterator/insert_iterator.h b/source/tinystl/iterator/insert_iterator.h index 5b8fcce..b5ed92b 100644 --- a/source/tinystl/iterator/insert_iterator.h +++ b/source/tinystl/iterator/insert_iterator.h @@ -2,7 +2,7 @@ #include -#include "tinystl/iterator/iterator.h" +#include "tinystl/iterator/iterator_tag.h" namespace tinystl { // https://en.cppreference.com/w/cpp/iterator/insert_iterator.html @@ -49,4 +49,4 @@ inserter(Container &c, typename Container::iterator it) { return insert_iterator(c, it); } -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/iterator/iterator.h b/source/tinystl/iterator/iterator.h index 185bdcd..155646d 100644 --- a/source/tinystl/iterator/iterator.h +++ b/source/tinystl/iterator/iterator.h @@ -15,4 +15,4 @@ struct [[deprecated("deprecated")]] iterator { using pointer = Pointer; using reference = Reference; }; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/iterator/iterator_tag.h b/source/tinystl/iterator/iterator_tag.h index 61019cb..af712a0 100644 --- a/source/tinystl/iterator/iterator_tag.h +++ b/source/tinystl/iterator/iterator_tag.h @@ -18,4 +18,4 @@ struct random_access_iterator_tag : public bidirectional_iterator_tag {}; struct contiguous_iterator_tag : public random_access_iterator_tag {}; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/iterator/iterator_traits.h b/source/tinystl/iterator/iterator_traits.h index 1ee71de..b56f383 100644 --- a/source/tinystl/iterator/iterator_traits.h +++ b/source/tinystl/iterator/iterator_traits.h @@ -5,8 +5,8 @@ #include #include "tinystl/iterator/iterator_tag.h" -#include "tinystl/type_traits/composite_type_categories/is_object.h" -#include "tinystl/type_traits/type_properties/is_renferenceable.h" +#include "tinystl/type_traits/is_object.h" +#include "tinystl/type_traits/is_renferenceable.h" // https://en.cppreference.com/w/cpp/iterator/iterator_tags.html // https://en.cppreference.com/w/cpp/iterator/iterator_traits.html @@ -229,4 +229,4 @@ struct [[deprecated("deprecated")]] iterator_traits { using reference = const T &; }; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/iterator/reverse_iterator.h b/source/tinystl/iterator/reverse_iterator.h index fa54f8e..4dee013 100644 --- a/source/tinystl/iterator/reverse_iterator.h +++ b/source/tinystl/iterator/reverse_iterator.h @@ -159,4 +159,4 @@ reverse_iterator make_reverse_iterator(Iter i) { return reverse_iterator(i); } -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/memory.h b/source/tinystl/memory.h index 97bcfd1..7d02056 100644 --- a/source/tinystl/memory.h +++ b/source/tinystl/memory.h @@ -1,6 +1,6 @@ #pragma once -#include -#include -#include -#include \ No newline at end of file +#include +#include +#include +#include diff --git a/source/tinystl/memory/miscellaneous/addressof.h b/source/tinystl/memory/addressof.h similarity index 68% rename from source/tinystl/memory/miscellaneous/addressof.h rename to source/tinystl/memory/addressof.h index 11cf510..f94ec8e 100644 --- a/source/tinystl/memory/miscellaneous/addressof.h +++ b/source/tinystl/memory/addressof.h @@ -1,7 +1,7 @@ #pragma once -#include "tinystl/type_traits/composite_type_categories/is_object.h" -#include "tinystl/type_traits/miscellaneous_transformations/enable_if.h" +#include "tinystl/type_traits/is_object.h" +#include "tinystl/type_traits/enable_if.h" namespace tinystl { @@ -16,4 +16,4 @@ template typename enable_if::value, T *>::type addressof(T &arg) noexcept { return &arg; } -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/memory/allocator/allocator.h b/source/tinystl/memory/allocator.h similarity index 96% rename from source/tinystl/memory/allocator/allocator.h rename to source/tinystl/memory/allocator.h index eeabe01..b505bd6 100644 --- a/source/tinystl/memory/allocator/allocator.h +++ b/source/tinystl/memory/allocator.h @@ -4,7 +4,7 @@ #include #include -#include "tinystl/type_traits/helper_classes/integral_constant.h" +#include "tinystl/type_traits/integral_constant.h" namespace tinystl { // https://en.cppreference.com/w/cpp/memory/allocator.html @@ -90,4 +90,4 @@ bool operator!=(const allocator &, const allocator &) noexcept { return false; } // util c++20 -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/memory/allocator/allocator_traits.h b/source/tinystl/memory/allocator_traits.h similarity index 96% rename from source/tinystl/memory/allocator/allocator_traits.h rename to source/tinystl/memory/allocator_traits.h index 527585e..1dcf342 100644 --- a/source/tinystl/memory/allocator/allocator_traits.h +++ b/source/tinystl/memory/allocator_traits.h @@ -1,14 +1,13 @@ #pragma once #include +#include -#include "tinystl/memory/pointer_traits/pointer_traits.h" -#include "tinystl/type_traits/miscellaneous_transformations/void_t.h" -#include "tinystl/type_traits/type_properties/is_empty.h" -#include "tinystl/type_traits/miscellaneous_transformations/enable_if.h" -#include "tinystl/type_traits/sign_modifiers/make_unsigned.h" - -#include +#include "tinystl/memory/pointer_traits.h" +#include "tinystl/type_traits/void_t.h" +#include "tinystl/type_traits/is_empty.h" +#include "tinystl/type_traits/enable_if.h" +#include "tinystl/type_traits/make_unsigned.h" // https://en.cppreference.com/w/cpp/memory/allocator_traits.html @@ -290,4 +289,4 @@ struct allocator_traits { } }; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/memory/pointer_traits/pointer_traits.h b/source/tinystl/memory/pointer_traits.h similarity index 91% rename from source/tinystl/memory/pointer_traits/pointer_traits.h rename to source/tinystl/memory/pointer_traits.h index 3019bff..da309bd 100644 --- a/source/tinystl/memory/pointer_traits/pointer_traits.h +++ b/source/tinystl/memory/pointer_traits.h @@ -2,10 +2,10 @@ #include -#include "tinystl/memory/miscellaneous/addressof.h" -#include "tinystl/type_traits/miscellaneous_transformations/conditional.h" -#include "tinystl/type_traits/miscellaneous_transformations/void_t.h" -#include "tinystl/type_traits/primary_type_categories/is_void.h" +#include "tinystl/memory/addressof.h" +#include "tinystl/type_traits/conditional.h" +#include "tinystl/type_traits/void_t.h" +#include "tinystl/type_traits/is_void.h" namespace detail { diff --git a/source/tinystl/type_traits.h b/source/tinystl/type_traits.h index bdd7050..8720b38 100644 --- a/source/tinystl/type_traits.h +++ b/source/tinystl/type_traits.h @@ -4,32 +4,32 @@ // composite_type_categories -#include -#include -#include -#include +#include +#include +#include +#include // const_volatility_specifiers -#include +#include // miscellaneous_transformations -#include -#include -#include +#include +#include +#include // primary_type_categories -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // type_properties -#include +#include // type_relationships -#include +#include diff --git a/source/tinystl/type_traits/arrays/.gitkeep b/source/tinystl/type_traits/arrays/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/source/tinystl/type_traits/composite_type_categories/is_scalar.h b/source/tinystl/type_traits/composite_type_categories/is_scalar.h deleted file mode 100644 index 28b4b5e..0000000 --- a/source/tinystl/type_traits/composite_type_categories/is_scalar.h +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once - -#include "tinystl/type_traits/composite_type_categories/is_arithmetic.h" -#include "tinystl/type_traits/composite_type_categories/is_member_pointer.h" -#include "tinystl/type_traits/helper_classes/integral_constant.h" -#include "tinystl/type_traits/primary_type_categories/is_enum.h" -#include "tinystl/type_traits/primary_type_categories/is_null_pointer.h" -#include "tinystl/type_traits/primary_type_categories/is_pointer.h" - -namespace tinystl { -// https://en.cppreference.com/w/cpp/types/is_scalar -template -struct is_scalar - : integral_constant< - bool, is_arithmetic::value || is_enum::value || - is_pointer::value || is_member_pointer::value || - is_null_pointer::value> {}; - -template -inline constexpr bool is_scalar_v = is_scalar::value; - -} // namespace tinystl \ No newline at end of file diff --git a/source/tinystl/type_traits/miscellaneous_transformations/conditional.h b/source/tinystl/type_traits/conditional.h similarity index 92% rename from source/tinystl/type_traits/miscellaneous_transformations/conditional.h rename to source/tinystl/type_traits/conditional.h index 069dc76..8f87105 100644 --- a/source/tinystl/type_traits/miscellaneous_transformations/conditional.h +++ b/source/tinystl/type_traits/conditional.h @@ -13,4 +13,4 @@ struct conditional { template using conditional_t = typename conditional::type; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/constant_evaluation_context/.gitkeep b/source/tinystl/type_traits/constant_evaluation_context/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/source/tinystl/type_traits/miscellaneous_transformations/enable_if.h b/source/tinystl/type_traits/enable_if.h similarity index 92% rename from source/tinystl/type_traits/miscellaneous_transformations/enable_if.h rename to source/tinystl/type_traits/enable_if.h index ce4d50b..f4f6793 100644 --- a/source/tinystl/type_traits/miscellaneous_transformations/enable_if.h +++ b/source/tinystl/type_traits/enable_if.h @@ -13,4 +13,4 @@ struct enable_if { template using enable_if_t = typename enable_if::type; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/helper_classes/integral_constant.h b/source/tinystl/type_traits/integral_constant.h similarity index 96% rename from source/tinystl/type_traits/helper_classes/integral_constant.h rename to source/tinystl/type_traits/integral_constant.h index cfa53cb..db97bec 100644 --- a/source/tinystl/type_traits/helper_classes/integral_constant.h +++ b/source/tinystl/type_traits/integral_constant.h @@ -27,4 +27,4 @@ using bool_constant = integral_constant; using true_type = integral_constant; using false_type = integral_constant; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/composite_type_categories/is_arithmetic.h b/source/tinystl/type_traits/is_arithmetic.h similarity index 52% rename from source/tinystl/type_traits/composite_type_categories/is_arithmetic.h rename to source/tinystl/type_traits/is_arithmetic.h index 09cbf33..9680e9c 100644 --- a/source/tinystl/type_traits/composite_type_categories/is_arithmetic.h +++ b/source/tinystl/type_traits/is_arithmetic.h @@ -1,8 +1,8 @@ #pragma once -#include "tinystl/type_traits/helper_classes/integral_constant.h" -#include "tinystl/type_traits/primary_type_categories/is_floating_point.h" -#include "tinystl/type_traits/primary_type_categories/is_integral.h" +#include "tinystl/type_traits/integral_constant.h" +#include "tinystl/type_traits/is_floating_point.h" +#include "tinystl/type_traits/is_integral.h" namespace tinystl { template @@ -12,4 +12,4 @@ struct is_arithmetic template inline constexpr bool is_arithmetic_v = is_arithmetic::value; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/primary_type_categories/is_array.h b/source/tinystl/type_traits/is_array.h similarity index 78% rename from source/tinystl/type_traits/primary_type_categories/is_array.h rename to source/tinystl/type_traits/is_array.h index 2901f8c..d3a7956 100644 --- a/source/tinystl/type_traits/primary_type_categories/is_array.h +++ b/source/tinystl/type_traits/is_array.h @@ -2,7 +2,7 @@ #include -#include "tinystl/type_traits/helper_classes/integral_constant.h" +#include "tinystl/type_traits/integral_constant.h" namespace tinystl { @@ -18,4 +18,4 @@ struct is_array : true_type {}; template inline constexpr bool is_array_v = is_array::value; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/primary_type_categories/is_class.h b/source/tinystl/type_traits/is_class.h similarity index 74% rename from source/tinystl/type_traits/primary_type_categories/is_class.h rename to source/tinystl/type_traits/is_class.h index 74b51fd..0f77fba 100644 --- a/source/tinystl/type_traits/primary_type_categories/is_class.h +++ b/source/tinystl/type_traits/is_class.h @@ -1,7 +1,7 @@ #pragma once -#include "tinystl/type_traits/helper_classes/integral_constant.h" -#include "tinystl/type_traits/primary_type_categories/is_union.h" +#include "tinystl/type_traits/integral_constant.h" +#include "tinystl/type_traits/is_union.h" namespace detail { template @@ -22,4 +22,4 @@ struct is_class : decltype(detail::test(nullptr)) {}; template inline constexpr bool is_class_v = is_class::value; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/type_properties/is_empty.h b/source/tinystl/type_traits/is_empty.h similarity index 67% rename from source/tinystl/type_traits/type_properties/is_empty.h rename to source/tinystl/type_traits/is_empty.h index 51a5368..0879888 100644 --- a/source/tinystl/type_traits/type_properties/is_empty.h +++ b/source/tinystl/type_traits/is_empty.h @@ -1,6 +1,6 @@ #pragma once -#include "tinystl/type_traits/helper_classes/integral_constant.h" +#include "tinystl/type_traits/integral_constant.h" namespace tinystl { template @@ -8,4 +8,4 @@ struct is_empty : bool_constant<__is_empty(T)> {}; template inline constexpr bool is_empty_v = is_empty::value; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/primary_type_categories/is_enum.h b/source/tinystl/type_traits/is_enum.h similarity index 68% rename from source/tinystl/type_traits/primary_type_categories/is_enum.h rename to source/tinystl/type_traits/is_enum.h index d85926a..5438742 100644 --- a/source/tinystl/type_traits/primary_type_categories/is_enum.h +++ b/source/tinystl/type_traits/is_enum.h @@ -1,6 +1,6 @@ #pragma once -#include "tinystl/type_traits/helper_classes/integral_constant.h" +#include "tinystl/type_traits/integral_constant.h" namespace tinystl { @@ -10,4 +10,4 @@ struct is_enum : tinystl::bool_constant<__is_enum(T)> {}; template inline constexpr bool is_enum_v = is_enum::value; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/primary_type_categories/is_floating_point.h b/source/tinystl/type_traits/is_floating_point.h similarity index 67% rename from source/tinystl/type_traits/primary_type_categories/is_floating_point.h rename to source/tinystl/type_traits/is_floating_point.h index 620d4b2..7b4f406 100644 --- a/source/tinystl/type_traits/primary_type_categories/is_floating_point.h +++ b/source/tinystl/type_traits/is_floating_point.h @@ -1,8 +1,8 @@ #pragma once -#include "tinystl/type_traits/const_volatility_specifiers/remove_cv.h" -#include "tinystl/type_traits/helper_classes/integral_constant.h" -#include "tinystl/type_traits/type_relationships/is_same.h" +#include "tinystl/type_traits/remove_cv.h" +#include "tinystl/type_traits/integral_constant.h" +#include "tinystl/type_traits/is_same.h" namespace tinystl { template @@ -16,4 +16,4 @@ struct is_floating_point template inline constexpr bool is_floating_point_v = is_floating_point::value; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/primary_type_categories/is_integral.h b/source/tinystl/type_traits/is_integral.h similarity index 84% rename from source/tinystl/type_traits/primary_type_categories/is_integral.h rename to source/tinystl/type_traits/is_integral.h index 2e7ba5d..9efcc54 100644 --- a/source/tinystl/type_traits/primary_type_categories/is_integral.h +++ b/source/tinystl/type_traits/is_integral.h @@ -1,6 +1,6 @@ #pragma once -#include "tinystl/type_traits/helper_classes/integral_constant.h" +#include "tinystl/type_traits/integral_constant.h" namespace tinystl { // Note: this implementation uses C++20 facilities @@ -17,4 +17,4 @@ template template inline constexpr bool is_integral_v = is_integral::value; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/primary_type_categories/is_lvalue_reference.h b/source/tinystl/type_traits/is_lvalue_reference.h similarity index 79% rename from source/tinystl/type_traits/primary_type_categories/is_lvalue_reference.h rename to source/tinystl/type_traits/is_lvalue_reference.h index 67593d9..0d9c762 100644 --- a/source/tinystl/type_traits/primary_type_categories/is_lvalue_reference.h +++ b/source/tinystl/type_traits/is_lvalue_reference.h @@ -1,6 +1,6 @@ #pragma once -#include "tinystl/type_traits/helper_classes/integral_constant.h" +#include "tinystl/type_traits/integral_constant.h" namespace tinystl { template @@ -10,4 +10,4 @@ struct is_lvalue_reference : true_type {}; template inline constexpr bool is_lvalue_reference_v = is_lvalue_reference::value; -} \ No newline at end of file +} diff --git a/source/tinystl/type_traits/composite_type_categories/is_member_pointer.h b/source/tinystl/type_traits/is_member_pointer.h similarity index 70% rename from source/tinystl/type_traits/composite_type_categories/is_member_pointer.h rename to source/tinystl/type_traits/is_member_pointer.h index 73f0237..0103290 100644 --- a/source/tinystl/type_traits/composite_type_categories/is_member_pointer.h +++ b/source/tinystl/type_traits/is_member_pointer.h @@ -1,7 +1,7 @@ #pragma once -#include "tinystl/type_traits/const_volatility_specifiers/remove_cv.h" -#include "tinystl/type_traits/helper_classes/integral_constant.h" +#include "tinystl/type_traits/remove_cv.h" +#include "tinystl/type_traits/integral_constant.h" namespace tinystl { template @@ -16,4 +16,4 @@ struct is_member_pointer template inline constexpr bool is_member_pointer_v = is_member_pointer::value; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/primary_type_categories/is_null_pointer.h b/source/tinystl/type_traits/is_null_pointer.h similarity index 61% rename from source/tinystl/type_traits/primary_type_categories/is_null_pointer.h rename to source/tinystl/type_traits/is_null_pointer.h index f5aafa4..3ba129b 100644 --- a/source/tinystl/type_traits/primary_type_categories/is_null_pointer.h +++ b/source/tinystl/type_traits/is_null_pointer.h @@ -2,8 +2,8 @@ #include -#include "tinystl/type_traits/const_volatility_specifiers/remove_cv.h" -#include "tinystl/type_traits/type_relationships/is_same.h" +#include "tinystl/type_traits/remove_cv.h" +#include "tinystl/type_traits/is_same.h" namespace tinystl { template @@ -12,4 +12,4 @@ struct is_null_pointer : is_same::type> { template inline constexpr bool is_null_pointer_v = is_null_pointer::value; -}; // namespace tinystl \ No newline at end of file +}; // namespace tinystl diff --git a/source/tinystl/type_traits/composite_type_categories/is_object.h b/source/tinystl/type_traits/is_object.h similarity index 51% rename from source/tinystl/type_traits/composite_type_categories/is_object.h rename to source/tinystl/type_traits/is_object.h index c62f351..f5feadf 100644 --- a/source/tinystl/type_traits/composite_type_categories/is_object.h +++ b/source/tinystl/type_traits/is_object.h @@ -1,10 +1,10 @@ #pragma once -#include "tinystl/type_traits/composite_type_categories/is_scalar.h" -#include "tinystl/type_traits/helper_classes/integral_constant.h" -#include "tinystl/type_traits/primary_type_categories/is_array.h" -#include "tinystl/type_traits/primary_type_categories/is_class.h" -#include "tinystl/type_traits/primary_type_categories/is_union.h" +#include "tinystl/type_traits/is_scalar.h" +#include "tinystl/type_traits/integral_constant.h" +#include "tinystl/type_traits/is_array.h" +#include "tinystl/type_traits/is_class.h" +#include "tinystl/type_traits/is_union.h" namespace tinystl { // https://en.cppreference.com/w/cpp/types/is_object.html @@ -16,4 +16,4 @@ struct is_object : integral_constant< template inline constexpr bool is_object_v = is_object::value; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/primary_type_categories/is_pointer.h b/source/tinystl/type_traits/is_pointer.h similarity index 83% rename from source/tinystl/type_traits/primary_type_categories/is_pointer.h rename to source/tinystl/type_traits/is_pointer.h index 1dd991c..0e29ee3 100644 --- a/source/tinystl/type_traits/primary_type_categories/is_pointer.h +++ b/source/tinystl/type_traits/is_pointer.h @@ -1,6 +1,6 @@ #pragma once -#include "tinystl/type_traits/helper_classes/integral_constant.h" +#include "tinystl/type_traits/integral_constant.h" namespace tinystl { template @@ -21,4 +21,4 @@ struct is_pointer : true_type {}; template inline constexpr bool is_pointer_v = is_pointer::value; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/composite_type_categories/is_reference.h b/source/tinystl/type_traits/is_reference.h similarity index 60% rename from source/tinystl/type_traits/composite_type_categories/is_reference.h rename to source/tinystl/type_traits/is_reference.h index a049922..861b55f 100644 --- a/source/tinystl/type_traits/composite_type_categories/is_reference.h +++ b/source/tinystl/type_traits/is_reference.h @@ -1,7 +1,7 @@ #pragma once -#include "tinystl/type_traits/primary_type_categories/is_lvalue_reference.h" -#include "tinystl/type_traits/primary_type_categories/is_rvalue_reference.h" +#include "tinystl/type_traits/is_lvalue_reference.h" +#include "tinystl/type_traits/is_rvalue_reference.h" namespace tinystl { template @@ -9,4 +9,4 @@ struct is_reference : bool_constant::value || is_rvalue_r template inline constexpr bool is_reference_v = is_reference::value; -} \ No newline at end of file +} diff --git a/source/tinystl/type_traits/type_properties/is_renferenceable.h b/source/tinystl/type_traits/is_renferenceable.h similarity index 76% rename from source/tinystl/type_traits/type_properties/is_renferenceable.h rename to source/tinystl/type_traits/is_renferenceable.h index c78ac65..992f40c 100644 --- a/source/tinystl/type_traits/type_properties/is_renferenceable.h +++ b/source/tinystl/type_traits/is_renferenceable.h @@ -1,7 +1,7 @@ #pragma once -#include "tinystl/type_traits/helper_classes/integral_constant.h" -#include "tinystl/type_traits/miscellaneous_transformations/void_t.h" +#include "tinystl/type_traits/integral_constant.h" +#include "tinystl/type_traits/void_t.h" namespace tinystl { template @@ -22,4 +22,4 @@ inline constexpr bool is_referenceable_v = is_referenceable::value; template concept referenceable = is_referenceable_v; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/primary_type_categories/is_rvalue_reference.h b/source/tinystl/type_traits/is_rvalue_reference.h similarity index 79% rename from source/tinystl/type_traits/primary_type_categories/is_rvalue_reference.h rename to source/tinystl/type_traits/is_rvalue_reference.h index 7885e79..53dd663 100644 --- a/source/tinystl/type_traits/primary_type_categories/is_rvalue_reference.h +++ b/source/tinystl/type_traits/is_rvalue_reference.h @@ -1,6 +1,6 @@ #pragma once -#include "tinystl/type_traits/helper_classes/integral_constant.h" +#include "tinystl/type_traits/integral_constant.h" namespace tinystl { template @@ -10,4 +10,4 @@ struct is_rvalue_reference : true_type {}; template inline constexpr bool is_rvalue_reference_v = is_rvalue_reference::value; -} \ No newline at end of file +} diff --git a/source/tinystl/type_traits/type_relationships/is_same.h b/source/tinystl/type_traits/is_same.h similarity index 76% rename from source/tinystl/type_traits/type_relationships/is_same.h rename to source/tinystl/type_traits/is_same.h index ea4775a..42f4e74 100644 --- a/source/tinystl/type_traits/type_relationships/is_same.h +++ b/source/tinystl/type_traits/is_same.h @@ -1,6 +1,6 @@ #pragma once -#include "tinystl/type_traits/helper_classes/integral_constant.h" +#include "tinystl/type_traits/integral_constant.h" namespace tinystl { // https://en.cppreference.com/w/cpp/types/is_same.html @@ -14,4 +14,4 @@ struct is_same : true_type {}; template constexpr bool is_same_v = is_same::value; -}; // namespace tinystl \ No newline at end of file +}; // namespace tinystl diff --git a/source/tinystl/type_traits/is_scalar.h b/source/tinystl/type_traits/is_scalar.h new file mode 100644 index 0000000..61f4adc --- /dev/null +++ b/source/tinystl/type_traits/is_scalar.h @@ -0,0 +1,22 @@ +#pragma once + +#include "tinystl/type_traits/is_arithmetic.h" +#include "tinystl/type_traits/is_member_pointer.h" +#include "tinystl/type_traits/integral_constant.h" +#include "tinystl/type_traits/is_enum.h" +#include "tinystl/type_traits/is_null_pointer.h" +#include "tinystl/type_traits/is_pointer.h" + +namespace tinystl { +// https://en.cppreference.com/w/cpp/types/is_scalar +template +struct is_scalar + : integral_constant< + bool, is_arithmetic::value || is_enum::value || + is_pointer::value || is_member_pointer::value || + is_null_pointer::value> {}; + +template +inline constexpr bool is_scalar_v = is_scalar::value; + +} // namespace tinystl diff --git a/source/tinystl/type_traits/primary_type_categories/is_union.h b/source/tinystl/type_traits/is_union.h similarity index 67% rename from source/tinystl/type_traits/primary_type_categories/is_union.h rename to source/tinystl/type_traits/is_union.h index ceeb6d9..8ec0469 100644 --- a/source/tinystl/type_traits/primary_type_categories/is_union.h +++ b/source/tinystl/type_traits/is_union.h @@ -1,6 +1,6 @@ #pragma once -#include "tinystl/type_traits/helper_classes/integral_constant.h" +#include "tinystl/type_traits/integral_constant.h" namespace tinystl { @@ -10,4 +10,4 @@ struct is_union : bool_constant<__is_union(T)> {}; template inline constexpr bool is_union_v = is_union::value; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/primary_type_categories/is_void.h b/source/tinystl/type_traits/is_void.h similarity index 61% rename from source/tinystl/type_traits/primary_type_categories/is_void.h rename to source/tinystl/type_traits/is_void.h index cbdf0d7..b9cf3b3 100644 --- a/source/tinystl/type_traits/primary_type_categories/is_void.h +++ b/source/tinystl/type_traits/is_void.h @@ -1,7 +1,7 @@ #pragma once -#include "tinystl/type_traits/const_volatility_specifiers/remove_cv.h" -#include "tinystl/type_traits/type_relationships/is_same.h" +#include "tinystl/type_traits/remove_cv.h" +#include "tinystl/type_traits/is_same.h" namespace tinystl { @@ -12,4 +12,4 @@ struct is_void : is_same::type> {}; template inline constexpr bool is_void_v = is_void::value; -} // namespace tinystl \ No newline at end of file +} // namespace tinystl diff --git a/source/tinystl/type_traits/sign_modifiers/make_unsigned.h b/source/tinystl/type_traits/make_unsigned.h similarity index 99% rename from source/tinystl/type_traits/sign_modifiers/make_unsigned.h rename to source/tinystl/type_traits/make_unsigned.h index e83bff9..d1832f8 100644 --- a/source/tinystl/type_traits/sign_modifiers/make_unsigned.h +++ b/source/tinystl/type_traits/make_unsigned.h @@ -12,4 +12,4 @@ struct make_unsigned template< class T > using make_unsigned_t = typename make_unsigned::type; -} \ No newline at end of file +} diff --git a/source/tinystl/type_traits/member_relationships/.gitkeep b/source/tinystl/type_traits/member_relationships/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/source/tinystl/type_traits/operations_on_traits/.gitkeep b/source/tinystl/type_traits/operations_on_traits/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/source/tinystl/type_traits/pointers/.gitkeep b/source/tinystl/type_traits/pointers/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/source/tinystl/type_traits/property_queries/.gitkeep b/source/tinystl/type_traits/property_queries/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/source/tinystl/type_traits/references/.gitkeep b/source/tinystl/type_traits/references/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/source/tinystl/type_traits/const_volatility_specifiers/remove_cv.h b/source/tinystl/type_traits/remove_cv.h similarity index 97% rename from source/tinystl/type_traits/const_volatility_specifiers/remove_cv.h rename to source/tinystl/type_traits/remove_cv.h index 26f56a1..700b943 100644 --- a/source/tinystl/type_traits/const_volatility_specifiers/remove_cv.h +++ b/source/tinystl/type_traits/remove_cv.h @@ -45,4 +45,4 @@ using remove_const_t = typename remove_const::type; // since C++14 template using remove_volatile_t = typename remove_volatile::type; // since C++14 -}; // namespace tinystl \ No newline at end of file +}; // namespace tinystl diff --git a/source/tinystl/type_traits/supported_operations/.gitkeep b/source/tinystl/type_traits/supported_operations/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/source/tinystl/type_traits/miscellaneous_transformations/void_t.h b/source/tinystl/type_traits/void_t.h similarity index 97% rename from source/tinystl/type_traits/miscellaneous_transformations/void_t.h rename to source/tinystl/type_traits/void_t.h index ed8b34a..4b6d42c 100644 --- a/source/tinystl/type_traits/miscellaneous_transformations/void_t.h +++ b/source/tinystl/type_traits/void_t.h @@ -3,4 +3,4 @@ namespace tinystl { template using void_t = void; -} \ No newline at end of file +} diff --git a/test/container/array.cpp b/test/container/array.cpp index fbceb81..1565d66 100644 --- a/test/container/array.cpp +++ b/test/container/array.cpp @@ -203,4 +203,4 @@ TEST_CASE("Non-member functions", "[array][non-member]") { REQUIRE(arr1 <= arr2); REQUIRE(arr1 >= arr2); } -} \ No newline at end of file +} diff --git a/test/type_traits/is_same.cpp b/test/type_traits/is_same.cpp index bb5f20e..b726cac 100644 --- a/test/type_traits/is_same.cpp +++ b/test/type_traits/is_same.cpp @@ -40,4 +40,4 @@ TEST_CASE("is_same basic checks", "[type_traits][is_same]") { SECTION("const-qualified type") { REQUIRE_FALSE(tinystl::is_same()); } -} \ No newline at end of file +} diff --git a/test/type_traits/remove_cv.cpp b/test/type_traits/remove_cv.cpp index 09839aa..306e741 100644 --- a/test/type_traits/remove_cv.cpp +++ b/test/type_traits/remove_cv.cpp @@ -22,4 +22,4 @@ TEST_CASE("remove_cv_t type trait", "[type_traits][remove_cv]") { REQUIRE(same, const int *>); REQUIRE(same, int *>); } -} \ No newline at end of file +}