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