Code:
#include<iostream>
#include<utility>
#include<boost/fusion/include/std_pair.hpp>
#include<boost/fusion/include/io.hpp>
#include<boost/fusion/include/transform.hpp>
int main ()
{
::boost:: fusion:: result_of:: transform
< ::std:: pair< int, int> const, int>:: type
const&v ((::boost:: fusion:: transform (::std:: make_pair (0, 01), 01)));
// fails in boost:: result_of< int>
return ::std:: cout<< v<< '\n'?
+EXIT_SUCCESS: +EXIT_FAILURE; }
The code is (obviously) ill-formed and it does not compile, but it is
not the point. I get the following message:
/usr/include/boost/mpl/aux_/preprocessed/gcc/apply.hpp:48:1: [
skipping 4 instantiation contexts ]
Can I get a full traceback? I am interested in what happens in the guts
(in particular, operator *). Of course, I could try to reproduce the
context of the caller explicitly but that is rather troublesome. In
this particular case, it requires the following code:
typedef
::boost:: fusion:: result_of:: begin
<
::boost:: fusion:: transform_view< ::std:: pair< int, int> const, int> >::
type
const&offending_iterator_20;
template
void ::boost:: fusion:: detail:: print_sequence_loop:: call
(::std:: ostream&, offending_iterator_20, offending_iterator_20,
boost:: mpl:: false_);
Chris