Boost logo

Boost Users :

From: Dave Jenkins (david_at_[hidden])
Date: 2007-10-22 00:51:53


Hi,
I'm testing with BOOST_TYPEOF_LIMIT_SIZE greater than 50 and native typeof
disabled. I get a "class template has already been defined" error on
"template<class V, class T> struct push_back" whenever
BOOST_TYPEOF_LIMIT_SIZE is *not* a multiple of 50.

This is because push_back is defined in both "typeof/vector.hpp" and, for
example, "typeof/vector50.hpp". My fix is to change the push_back
definition in "typeof/vector.hpp" to:

# if BOOST_TYPEOF_LIMIT_SIZE < 50
    template<class V, class T> struct push_back {
        typedef V type;
    };
# endif

Can someone please confirm that this is the correct fix? A tiny program
demonstrating the problem is listed below.
Thanks,
Dave Jenkins

#define BOOST_TYPEOF_COMPLIANT
#define BOOST_TYPEOF_LIMIT_SIZE 51
#include <boost/typeof/typeof.hpp>
int main(){
    return 0;
}


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net