36 template <
class T> T any_cast(
const any& operand) {
return std::any_cast<T>(operand); }
37 template <
class T> T any_cast(any& operand) {
return std::any_cast<T>(operand); }
38 template <
class T> T any_cast(any&& operand) {
return std::any_cast<T>(operand); }
39 template <
class T>
const T* any_cast(
const any* operand) noexcept
41 return std::any_cast<T>(operand);
43 template <
class T> T* any_cast(any* operand) noexcept {
return std::any_cast<T>(operand); }
44 using bad_any_cast = std::bad_any_cast;
45 inline bool is_empty(
const any& a) {
return !a.has_value(); }
48 #include <boost/any.hpp>
51 using any = boost::any;
52 template <
class T> T any_cast(
const any& operand) {
return boost::any_cast<T>(operand); }
53 template <
class T> T any_cast(any& operand) {
return boost::any_cast<T>(operand); }
54 template <
class T> T any_cast(any&& operand) {
return boost::any_cast<T>(operand); }
55 template <
class T>
const T* any_cast(
const any* operand) noexcept
57 return boost::any_cast<T>(operand);
59 template <
class T> T* any_cast(any* operand) noexcept {
return boost::any_cast<T>(operand); }
60 using bad_any_cast = boost::bad_any_cast;
61 inline bool is_empty(
const any& a) {
return a.empty(); }