Boost logo

Boost :

From: Dave Jenkins (david_at_[hidden])
Date: 2007-10-24 05:46:41


[Note: This message received no response when posted to comp.lib.boost.user,
so I'm reposting it here.]

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 list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk