diff --git a/sprout/tuple/traits.hpp b/sprout/tuple/traits.hpp index 8aadb17f..c47ae9e0 100644 --- a/sprout/tuple/traits.hpp +++ b/sprout/tuple/traits.hpp @@ -5,6 +5,25 @@ #include #include +namespace sprout { + namespace types { + // + // rebind_types + // + template + struct rebind_types > { + public: + template + struct apply { + public: + typedef sprout::tuples::tuple type; + }; + }; + } // namespace types + + using sprout::types::rebind_types; +} // namespace sprout + namespace sprout { namespace tuples { // diff --git a/sprout/type/rebind_types.hpp b/sprout/type/rebind_types.hpp index e44e69ef..0c8b339a 100644 --- a/sprout/type/rebind_types.hpp +++ b/sprout/type/rebind_types.hpp @@ -12,6 +12,20 @@ namespace sprout { template struct rebind_types; + template + struct rebind_types { + public: + template + struct apply { + public: + typedef typename sprout::types::rebind_types< + Tuple + >::template apply< + Types... + >::type const type; + }; + }; + template struct rebind_types > { public: