|
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