From 0e15e522720d0b626d32f27f354eba3c7fea835f Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Mon, 16 Aug 2021 08:08:46 +0700 Subject: [PATCH] fix unused warning --- headers/meta.hpp/meta_infos/class_info.hpp | 23 +++++++++++++++++---- headers/meta.hpp/meta_infos/member_info.hpp | 2 +- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/headers/meta.hpp/meta_infos/class_info.hpp b/headers/meta.hpp/meta_infos/class_info.hpp index 90d2af6..7e861db 100644 --- a/headers/meta.hpp/meta_infos/class_info.hpp +++ b/headers/meta.hpp/meta_infos/class_info.hpp @@ -34,9 +34,10 @@ namespace meta_hpp template < typename... Args > ctor_info get_ctor_by_args() const noexcept; - template < std::size_t Args > - ctor_info get_ctor_by_args(const std::array& args) const noexcept; + template < std::size_t N > + ctor_info get_ctor_by_args(const std::array& args) const noexcept; ctor_info get_ctor_by_args(const std::vector& args) const noexcept; + ctor_info get_ctor_by_args(std::initializer_list args) const noexcept; public: template < typename F > void visit(F&& f) const; @@ -137,8 +138,8 @@ namespace meta_hpp return get_ctor_by_args(args); } - template < std::size_t Args > - ctor_info class_info::get_ctor_by_args(const std::array& args) const noexcept { + template < std::size_t N > + ctor_info class_info::get_ctor_by_args(const std::array& args) const noexcept { for ( auto&& id_info : state_->ctors ) { const std::vector& ctor_args = id_info.second.type().argument_types(); @@ -165,6 +166,20 @@ namespace meta_hpp } return ctor_info{}; } + + inline ctor_info class_info::get_ctor_by_args(std::initializer_list args) const noexcept { + for ( auto&& id_info : state_->ctors ) { + const std::vector& ctor_args = + id_info.second.type().argument_types(); + + if ( args.size() == ctor_args.size() + && std::equal(args.begin(), args.end(), ctor_args.begin()) ) + { + return id_info.second; + } + } + return ctor_info{}; + } } namespace meta_hpp diff --git a/headers/meta.hpp/meta_infos/member_info.hpp b/headers/meta.hpp/meta_infos/member_info.hpp index a1413e9..3d5a956 100644 --- a/headers/meta.hpp/meta_infos/member_info.hpp +++ b/headers/meta.hpp/meta_infos/member_info.hpp @@ -68,7 +68,7 @@ namespace meta_hpp::detail } template < typename Member > - void raw_member_setter(Member member, const inst& inst, const arg& arg) { + void raw_member_setter([[maybe_unused]] Member member, const inst& inst, const arg& arg) { using mt = member_pointer_traits; using class_type = typename mt::class_type; using value_type = typename mt::value_type;