mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2024-11-29 01:03:45 +00:00
fix testspr
This commit is contained in:
parent
7784046f95
commit
64e1994734
2 changed files with 29 additions and 16 deletions
|
@ -162,7 +162,7 @@ namespace testspr {
|
||||||
return func_ == nullptr ? rhs == nullptr
|
return func_ == nullptr ? rhs == nullptr
|
||||||
: rhs == nullptr ? false
|
: rhs == nullptr ? false
|
||||||
: func_.target_type() == rhs.target_type()
|
: func_.target_type() == rhs.target_type()
|
||||||
&& func_.target<bool (testspr::trace_stack const&)>() == rhs.target<bool (testspr::trace_stack const&)>()
|
&& func_.target<bool (*)(testspr::trace_stack const&)>() == rhs.target<bool (*)(testspr::trace_stack const&)>()
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
SPROUT_NON_CONSTEXPR bool operator!=(function_type const& rhs) const {
|
SPROUT_NON_CONSTEXPR bool operator!=(function_type const& rhs) const {
|
||||||
|
|
|
@ -39,10 +39,10 @@ namespace testspr {
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
// typename_of
|
// demangle
|
||||||
//
|
//
|
||||||
namespace detail {
|
|
||||||
#ifdef TESTSPR_HAS_CXXABI_H
|
#ifdef TESTSPR_HAS_CXXABI_H
|
||||||
|
namespace detail {
|
||||||
inline SPROUT_NON_CONSTEXPR char*
|
inline SPROUT_NON_CONSTEXPR char*
|
||||||
demangle_alloc(char const* name) {
|
demangle_alloc(char const* name) {
|
||||||
int status = 0;
|
int status = 0;
|
||||||
|
@ -66,9 +66,11 @@ namespace testspr {
|
||||||
return demangled_;
|
return demangled_;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
} // namespace detail
|
||||||
|
|
||||||
inline SPROUT_NON_CONSTEXPR std::string
|
inline SPROUT_NON_CONSTEXPR std::string
|
||||||
demangle(char const* name) {
|
demangle(char const* name) {
|
||||||
scoped_demangled_name demangled(name);
|
testspr::detail::scoped_demangled_name demangled(name);
|
||||||
return demangled.get() ? demangled.get() : name;
|
return demangled.get() ? demangled.get() : name;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
@ -77,16 +79,27 @@ namespace testspr {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
} // namespace detail
|
inline SPROUT_NON_CONSTEXPR std::string
|
||||||
|
demangle(std::string const& name) {
|
||||||
|
return testspr::demangle(name.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// typename_of
|
||||||
|
//
|
||||||
|
inline SPROUT_NON_CONSTEXPR std::string
|
||||||
|
typename_of(std::type_info const& t) {
|
||||||
|
return testspr::demangle(t.name());
|
||||||
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_NON_CONSTEXPR std::string
|
inline SPROUT_NON_CONSTEXPR std::string
|
||||||
typename_of() {
|
typename_of() {
|
||||||
return testspr::detail::demangle(typeid(T).name());
|
return testspr::typename_of(typeid(T));
|
||||||
}
|
}
|
||||||
template<typename T>
|
template<typename T>
|
||||||
inline SPROUT_NON_CONSTEXPR std::string
|
inline SPROUT_NON_CONSTEXPR std::string
|
||||||
typename_of(T&& t) {
|
typename_of(T&& t) {
|
||||||
return testspr::detail::demangle(typeid(std::forward<T>(t)).name());
|
return testspr::typename_of(typeid(std::forward<T>(t)));
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in a new issue