33 template <
class T> T any_cast(
const any& operand) {
return std::any_cast<T>(operand); }
34 template <
class T> T any_cast(any& operand) {
return std::any_cast<T>(operand); }
35 template <
class T> T any_cast(any&& operand) {
return std::any_cast<T>(operand); }
36 template <
class T>
const T* any_cast(
const any* operand) noexcept
38 return std::any_cast<T>(operand);
40 template <
class T> T* any_cast(any* operand) noexcept {
return std::any_cast<T>(operand); }
41 using bad_any_cast = std::bad_any_cast;
42 inline bool is_empty(
const any& a) {
return !a.has_value(); }
45 #include <boost/any.hpp>
48 using any = boost::any;
49 template <
class T> T any_cast(
const any& operand) {
return boost::any_cast<T>(operand); }
50 template <
class T> T any_cast(any& operand) {
return boost::any_cast<T>(operand); }
51 template <
class T> T any_cast(any&& operand) {
return boost::any_cast<T>(operand); }
52 template <
class T>
const T* any_cast(
const any* operand) noexcept
54 return boost::any_cast<T>(operand);
56 template <
class T> T* any_cast(any* operand) noexcept {
return boost::any_cast<T>(operand); }
57 using bad_any_cast = boost::bad_any_cast;
58 inline bool is_empty(
const any& a) {
return a.empty(); }