mirror of
https://github.com/BlackMATov/meta.hpp.git
synced 2025-12-14 11:40:35 +07:00
fix msvc compilation
This commit is contained in:
@@ -85,8 +85,12 @@ namespace meta_hpp
|
||||
|
||||
template < typename... Args >
|
||||
std::optional<value> invoke(Args&&... args) const {
|
||||
std::array<value, sizeof...(Args)> vargs{{std::forward<Args>(args)...}};
|
||||
return invoke_(vargs.data(), vargs.size());
|
||||
if constexpr ( sizeof...(Args) > 0u ) {
|
||||
std::array<value, sizeof...(Args)> vargs{std::forward<Args>(args)...};
|
||||
return invoke_(vargs.data(), vargs.size());
|
||||
} else {
|
||||
return invoke_(nullptr, 0u);
|
||||
}
|
||||
}
|
||||
|
||||
template < typename F >
|
||||
|
||||
@@ -142,14 +142,22 @@ namespace meta_hpp
|
||||
|
||||
template < typename... Args >
|
||||
std::optional<value> invoke(void* instance, Args&&... args) const {
|
||||
std::array<value, sizeof...(Args)> vargs{{std::forward<Args>(args)...}};
|
||||
return invoke_(instance, vargs.data(), vargs.size());
|
||||
if constexpr ( sizeof...(Args) > 0u ) {
|
||||
std::array<value, sizeof...(Args)> vargs{std::forward<Args>(args)...};
|
||||
return invoke_(instance, vargs.data(), vargs.size());
|
||||
} else {
|
||||
return invoke_(instance, nullptr, 0u);
|
||||
}
|
||||
}
|
||||
|
||||
template < typename... Args >
|
||||
std::optional<value> invoke(const void* instance, Args&&... args) const {
|
||||
std::array<value, sizeof...(Args)> vargs{{std::forward<Args>(args)...}};
|
||||
return cinvoke_(instance, vargs.data(), vargs.size());
|
||||
if constexpr ( sizeof...(Args) > 0u ) {
|
||||
std::array<value, sizeof...(Args)> vargs{std::forward<Args>(args)...};
|
||||
return cinvoke_(instance, vargs.data(), vargs.size());
|
||||
} else {
|
||||
return cinvoke_(instance, nullptr, 0u);
|
||||
}
|
||||
}
|
||||
|
||||
template < typename F >
|
||||
|
||||
Reference in New Issue
Block a user