#pragma once #include <brynet/base/CPP_VERSION.hpp> #ifdef BRYNET_HAVE_LANG_CXX17 #include <any> #else #include <cstdint> #endif namespace brynet { namespace base { #ifdef BRYNET_HAVE_LANG_CXX17 using BrynetAny = std::any; template<typename T> auto cast(const BrynetAny& ud) { return std::any_cast<T>(&ud); } #else using BrynetAny = int64_t; template<typename T> const T* cast(const BrynetAny& ud) { return static_cast<const T*>(&ud); } #endif }}// namespace brynet::base