Boost logo

Boost Users :

Subject: [Boost-users] [MPL] has_xxx always returns false!
From: Eric (elebel_at_[hidden])
Date: 2010-08-25 21:22:51

This code:


        template<class T, bool HasNormal>
        class getVertexHasNormal {
                static void getNormal(T &tv) {}

        template<class T>
        class getVertexHasNormal<T, true> // true case
                static void getNormal(T &tv) {
                 // do something

template<class VT>
class A : public base
      void doit(v) /* override */ {
         VT tv;
         getVertexHasNormal<VT, has_normal<VT>::value >::getNormal(tv);

if I understand correctly, this code is suppose to do call a different
"getNormal" method if the method "normal" exists (or not) in the template
parameter class.

Basically mimicking the infamous "__if_exists" macro on the Microsoft c++
compiler.... right?

but, has_normal<VT> always return false (visual studio 2008) so we don't get the
right expected behavior!

Feel free to educate me....

thanks in advance.


Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at