diff --git a/src/lib/meta/value-type-binding.hpp b/src/lib/meta/value-type-binding.hpp index 0d5a0c070..4e274cd23 100644 --- a/src/lib/meta/value-type-binding.hpp +++ b/src/lib/meta/value-type-binding.hpp @@ -40,7 +40,7 @@ #include "lib/error.hpp" -#include "lib/meta/duck-detector.hpp" ////////TODO +//#include "lib/meta/duck-detector.hpp" ////////TODO #include "lib/meta/util.hpp" ////////TODO @@ -53,7 +53,27 @@ namespace std { namespace lib { namespace meta { - META_DETECT_NESTED (value_type); + namespace { + + template + class has_nested_ValueTypeBindings + { + template + struct Probe + { }; + + template + static Yes_t check(Probe * ); + template + static No_t check(...); + + public: + static const bool value = (sizeof(Yes_t)==sizeof(check(0))); + }; + } /** * Type re-binding helper template for creating nested typedefs @@ -108,7 +128,7 @@ namespace meta { * STL style type binding definitions themselves */ template - struct TypeBinding> > + struct TypeBinding> > { typedef typename TY::pointer pointer; typedef typename TY::reference reference;