Hi,
we have a problem in our code base. I extracted a minimal example, see
below. The code works with g++ version up to 4.8.1 and C++11 but fails
to compile with gcc-4.8.1 and clang3.2 and newer. Any ideas what goes
wrong here? Should I further dig into the problem?
I am using boost 1.54.
#include
#include
#include
struct t1 { struct result_type1 {}; };
struct t2 { struct result_type1 {}; };
struct my_transform
{
template< class > struct result;
template< class F , class T >
struct result< F( T ) >
{
typedef typename T::result_type1 type;
};
};
int main( int argc , char *argv[] )
{
namespace fusion = boost::fusion;
typedef fusion::vector< t1 , t2 > vector_type;
typedef fusion::transform_view<
vector_type , my_transform > transform_type;
typedef fusion::result_of::as_vector<
transform_type >::type transformed_vector_type;
return 0;
}