diff --git a/include/boost/function_types/components.hpp b/include/boost/function_types/components.hpp index 53d81b6..d348682 100644 --- a/include/boost/function_types/components.hpp +++ b/include/boost/function_types/components.hpp @@ -47,7 +47,6 @@ #include -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION # if BOOST_FT_MAX_ARITY < 10 # include # elif BOOST_FT_MAX_ARITY < 20 @@ -59,9 +58,6 @@ # elif BOOST_FT_MAX_ARITY < 50 # include # endif -#else -# include -#endif #include #include diff --git a/include/boost/function_types/detail/class_transform.hpp b/include/boost/function_types/detail/class_transform.hpp index ef9a225..27b97b3 100644 --- a/include/boost/function_types/detail/class_transform.hpp +++ b/include/boost/function_types/detail/class_transform.hpp @@ -28,7 +28,6 @@ struct class_transform { typedef typename mpl::apply1::type type; }; -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION // We can short-circuit the mechanism implemented in the primary template for // the most common lambda expression and save both the "un-lambdaing" and the // type traits invocation (we know that T can only be a class type). @@ -53,7 +52,6 @@ template struct class_transform< T, add_pointer< remove_cv<_> > > template struct class_transform< T, mpl::always > { typedef U type; }; -#endif } } } // namespace ::boost::function_types::detail diff --git a/include/boost/function_types/detail/cv_traits.hpp b/include/boost/function_types/detail/cv_traits.hpp index 242f45b..4e15fa4 100644 --- a/include/boost/function_types/detail/cv_traits.hpp +++ b/include/boost/function_types/detail/cv_traits.hpp @@ -12,8 +12,7 @@ #include #include -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - || BOOST_WORKAROUND(__BORLANDC__, <= 0x582) +#if BOOST_WORKAROUND(__BORLANDC__, <= 0x582) # include # include # include @@ -23,8 +22,7 @@ namespace boost { namespace function_types { namespace detail { -#if ! (defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - || BOOST_WORKAROUND(__BORLANDC__, <= 0x582)) +#if !BOOST_WORKAROUND(__BORLANDC__, <= 0x582) template struct cv_traits { typedef non_cv tag; typedef T type; }; diff --git a/include/boost/function_types/detail/to_sequence.hpp b/include/boost/function_types/detail/to_sequence.hpp index 828acd9..54854db 100644 --- a/include/boost/function_types/detail/to_sequence.hpp +++ b/include/boost/function_types/detail/to_sequence.hpp @@ -32,14 +32,12 @@ struct to_sequence type; }; -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION // reduce template instantiations, if possible template struct to_sequence< components > { typedef typename components::types type; }; -#endif } } } // namespace ::boost::function_types::detail diff --git a/include/boost/function_types/property_tags.hpp b/include/boost/function_types/property_tags.hpp index bbc64d5..c2158d3 100644 --- a/include/boost/function_types/property_tags.hpp +++ b/include/boost/function_types/property_tags.hpp @@ -102,7 +102,6 @@ struct tag detail::compound_tag > { }; -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION template struct tag : detail::compound_tag,Tag3> { }; @@ -112,7 +111,6 @@ template struct tag template struct tag : Tag1 { }; -#endif template struct represents diff --git a/meta/libraries.json b/meta/libraries.json new file mode 100644 index 0000000..44b499e --- /dev/null +++ b/meta/libraries.json @@ -0,0 +1,15 @@ +{ + "key": "function_types", + "name": "Function Types", + "authors": [ + "Tobias Schwinger" + ], + "description": "Boost.FunctionTypes provides functionality to classify, decompose and synthesize function, function pointer, function reference and pointer to member types.", + "category": [ + "Generic", + "Metaprogramming" + ], + "maintainers": [ + "Tobias Schwinger " + ] +}