mirror of
https://github.com/quizhizhe/LiteLoaderBDS-1.16.40.git
synced 2025-06-05 03:43:40 +00:00
41 lines
916 B
C++
41 lines
916 B
C++
#ifndef ENTT_META_ADL_POINTER_HPP
|
|
#define ENTT_META_ADL_POINTER_HPP
|
|
|
|
|
|
namespace entt {
|
|
|
|
|
|
/**
|
|
* @brief ADL based lookup function for dereferencing meta pointer-like types.
|
|
* @tparam Type Element type.
|
|
* @param value A pointer-like object.
|
|
* @return The value returned from the dereferenced pointer.
|
|
*/
|
|
template<typename Type>
|
|
decltype(auto) dereference_meta_pointer_like(const Type &value) {
|
|
return *value;
|
|
}
|
|
|
|
|
|
/**
|
|
* @brief Fake ADL based lookup function for meta pointer-like types.
|
|
* @tparam Type Element type.
|
|
*/
|
|
template<typename Type>
|
|
struct adl_meta_pointer_like {
|
|
/**
|
|
* @brief Uses the default ADL based lookup method to resolve the call.
|
|
* @param value A pointer-like object.
|
|
* @return The value returned from the dereferenced pointer.
|
|
*/
|
|
static decltype(auto) dereference(const Type &value) {
|
|
return dereference_meta_pointer_like(value);
|
|
}
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif
|