
Hi,
I'm trying to use typedef typename boost::mpl::if_ to choose between
two structures, both with identical function names, so I can choose
which function to call based on the template parameter type.
The code works fine on Visual Studio 2005. But in MinGW/MSys it returns:
RPC3_Boost.h:203: error: template argument 2 is invalid
RPC3_Boost.h:203: error: template argument 3 is invalid
RPC3_Boost.h:203: error: ISO C++ forbids declaration of `type' with no
type
This is with boost_1_35_0. I've cut out as much code as I can:
struct ReadBitstream {
static void apply(RakNet::BitStream &bitStream, RakNet::BitStream* t)
{/* ... */}
};
template <typename T>
struct ReadPtr {
static inline void apply(RakNet::BitStream &bitStream, const char
*&t) {applyStr(bitStream, (char *&) t);}
};
template< typename T >
struct DoRead {
typedef typename boost::mpl::if_<
boost::is_convertible