From fc01416c4586cfa010c6ac0285dcbb22ff864703 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Mon, 20 Apr 2020 11:20:21 +0700 Subject: [PATCH] fix README and more tests --- README.md | 2 +- headers/enum.hpp/enum.hpp | 7 +++++-- untests/enum_tests.cpp | 19 +++++++++++++------ 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 6dee0d1..7a546f4 100644 --- a/README.md +++ b/README.md @@ -145,7 +145,7 @@ namespace some_namespace } // register traits in global namespace to generic access -ENUM_HPP_REGISTER_TRAITS(color) +ENUM_HPP_REGISTER_TRAITS(some_namespace::color) int main() { using color = some_namespace::color; diff --git a/headers/enum.hpp/enum.hpp b/headers/enum.hpp/enum.hpp index d9cd08e..455ef67 100644 --- a/headers/enum.hpp/enum.hpp +++ b/headers/enum.hpp/enum.hpp @@ -119,7 +119,7 @@ namespace enum_hpp namespace enum_hpp::detail { template < typename Enum > - struct ignore_assign { + struct ignore_assign final { Enum value; constexpr explicit ignore_assign(Enum value) noexcept @@ -229,7 +229,7 @@ namespace enum_hpp::detail // #define ENUM_HPP_TRAITS_DECL(Enum, Fields)\ - struct Enum##_traits {\ + struct Enum##_traits final {\ private:\ enum enum_names_for_this_score_ {\ ENUM_HPP_GENERATE_FIELDS(Fields)\ @@ -902,6 +902,7 @@ namespace enum_hpp::detail #define ENUM_HPP_PP_SEQ_SIZE_252(_) ENUM_HPP_PP_SEQ_SIZE_253 #define ENUM_HPP_PP_SEQ_SIZE_253(_) ENUM_HPP_PP_SEQ_SIZE_254 #define ENUM_HPP_PP_SEQ_SIZE_254(_) ENUM_HPP_PP_SEQ_SIZE_255 +#define ENUM_HPP_PP_SEQ_SIZE_255(_) ENUM_HPP_PP_SEQ_SIZE_256 # define ENUM_HPP_PP_SEQ_SIZE_ENUM_HPP_PP_SEQ_SIZE_0 0 # define ENUM_HPP_PP_SEQ_SIZE_ENUM_HPP_PP_SEQ_SIZE_1 1 @@ -1159,6 +1160,7 @@ namespace enum_hpp::detail # define ENUM_HPP_PP_SEQ_SIZE_ENUM_HPP_PP_SEQ_SIZE_253 253 # define ENUM_HPP_PP_SEQ_SIZE_ENUM_HPP_PP_SEQ_SIZE_254 254 # define ENUM_HPP_PP_SEQ_SIZE_ENUM_HPP_PP_SEQ_SIZE_255 255 +# define ENUM_HPP_PP_SEQ_SIZE_ENUM_HPP_PP_SEQ_SIZE_256 256 // // ENUM_HPP_PP_SEQ_FOR_EACH @@ -1422,3 +1424,4 @@ namespace enum_hpp::detail #define ENUM_HPP_PP_SEQ_FOR_EACH_253(m, d, i, s) m(d, i, ENUM_HPP_PP_SEQ_HEAD(s)) ENUM_HPP_PP_SEQ_FOR_EACH_252(m, d, ENUM_HPP_PP_INC(i), ENUM_HPP_PP_SEQ_TAIL(s)) #define ENUM_HPP_PP_SEQ_FOR_EACH_254(m, d, i, s) m(d, i, ENUM_HPP_PP_SEQ_HEAD(s)) ENUM_HPP_PP_SEQ_FOR_EACH_253(m, d, ENUM_HPP_PP_INC(i), ENUM_HPP_PP_SEQ_TAIL(s)) #define ENUM_HPP_PP_SEQ_FOR_EACH_255(m, d, i, s) m(d, i, ENUM_HPP_PP_SEQ_HEAD(s)) ENUM_HPP_PP_SEQ_FOR_EACH_254(m, d, ENUM_HPP_PP_INC(i), ENUM_HPP_PP_SEQ_TAIL(s)) +#define ENUM_HPP_PP_SEQ_FOR_EACH_256(m, d, i, s) m(d, i, ENUM_HPP_PP_SEQ_HEAD(s)) ENUM_HPP_PP_SEQ_FOR_EACH_255(m, d, ENUM_HPP_PP_INC(i), ENUM_HPP_PP_SEQ_TAIL(s)) diff --git a/untests/enum_tests.cpp b/untests/enum_tests.cpp index e739a97..26f63d2 100644 --- a/untests/enum_tests.cpp +++ b/untests/enum_tests.cpp @@ -52,7 +52,8 @@ namespace some_namespace (_161)(_162)(_163)(_164)(_165)(_166)(_167)(_168)(_169)(_170)(_171)(_172)(_173)(_174)(_175)(_176)(_177)(_178)(_179)(_180) (_181)(_182)(_183)(_184)(_185)(_186)(_187)(_188)(_189)(_190)(_191)(_192)(_193)(_194)(_195)(_196)(_197)(_198)(_199)(_200) (_201)(_202)(_203)(_204)(_205)(_206)(_207)(_208)(_209)(_210)(_211)(_212)(_213)(_214)(_215)(_216)(_217)(_218)(_219)(_220) - (_221)(_222)(_223)(_224)(_225)(_226)(_227)(_228)(_229)(_230)(_231)(_232)(_233)(_234)(_235)(_236)(_237)(_238)(_239)(_240)) + (_221)(_222)(_223)(_224)(_225)(_226)(_227)(_228)(_229)(_230)(_231)(_232)(_233)(_234)(_235)(_236)(_237)(_238)(_239)(_240) + (_241)(_242)(_243)(_244)(_245)(_246)(_247)(_248)(_249)(_250)(_251)(_252)(_253)(_254)(_255)) namespace exns { @@ -71,6 +72,7 @@ namespace some_namespace ENUM_HPP_REGISTER_TRAITS(some_namespace::color) ENUM_HPP_REGISTER_TRAITS(some_namespace::numbers) +ENUM_HPP_REGISTER_TRAITS(some_namespace::render::mask) ENUM_HPP_REGISTER_TRAITS(some_namespace::exns::external_enum) TEST_CASE("enum") { @@ -140,14 +142,19 @@ TEST_CASE("enum") { STATIC_REQUIRE(sn::render::mask_traits::size == std::size(sn::render::mask_traits::values)); } { - STATIC_REQUIRE(sn::numbers_traits::size == 241u); + STATIC_REQUIRE(sn::numbers_traits::size == 256u); STATIC_REQUIRE(sn::numbers_traits::size == std::size(sn::numbers_traits::names)); STATIC_REQUIRE(sn::numbers_traits::size == std::size(sn::numbers_traits::values)); - STATIC_REQUIRE(enum_hpp::size() == 241u); - STATIC_REQUIRE(enum_hpp::traits_t::size == 241u); - STATIC_REQUIRE(std::size(enum_hpp::names()) == 241u); - STATIC_REQUIRE(std::size(enum_hpp::values()) == 241u); + STATIC_REQUIRE(enum_hpp::size() == 256u); + STATIC_REQUIRE(enum_hpp::traits_t::size == 256u); + STATIC_REQUIRE(std::size(enum_hpp::names()) == 256u); + STATIC_REQUIRE(std::size(enum_hpp::values()) == 256u); + + STATIC_REQUIRE(enum_hpp::size() == 4u); + STATIC_REQUIRE(enum_hpp::traits_t::size == 4u); + STATIC_REQUIRE(std::size(enum_hpp::names()) == 4u); + STATIC_REQUIRE(std::size(enum_hpp::values()) == 4u); } }