
// (C) Copyright Tobias Schwinger
//
// Use modification and distribution are subject to the boost Software License,
// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).

//------------------------------------------------------------------------------

// no include guards, this file is intended for multiple inclusion

#undef NDNBOOST_FT_type_mask
#undef NDNBOOST_FT_kind_mask
#undef NDNBOOST_FT_callable_builtin
#undef NDNBOOST_FT_non_member
#undef NDNBOOST_FT_function
#undef NDNBOOST_FT_pointer
#undef NDNBOOST_FT_reference
#undef NDNBOOST_FT_non_member_callable_builtin
#undef NDNBOOST_FT_member_pointer
#undef NDNBOOST_FT_member_function_pointer
#undef NDNBOOST_FT_member_object_pointer
#undef NDNBOOST_FT_member_object_pointer_flags

#undef NDNBOOST_FT_variadic
#undef NDNBOOST_FT_non_variadic
#undef NDNBOOST_FT_variadic_mask

#undef NDNBOOST_FT_const
#undef NDNBOOST_FT_volatile

#undef NDNBOOST_FT_default_cc
#undef NDNBOOST_FT_cc_mask

#undef NDNBOOST_FT_flags_mask
#undef NDNBOOST_FT_full_mask

#undef NDNBOOST_FT_arity_mask

