Boost logo

Boost Users :

From: Joel de Guzman (joel_at_[hidden])
Date: 2006-05-01 23:31:18

John Christopher wrote:
> Hello,
> The example at the bottom of:
> does not compile; I am using MinGw 3.4.2.


> More specifically it is the line
> std::cout << transform << std::endl;

Works fine for me. See attached.

> that seems to create the problem.
> I was also wondering why operator() of square return int and not T.

Yes, it should be T. Noted. Thanks for spotting that. It's
corrected in the cpp file I just sent.


Joel de Guzman

    Copyright (c) 2001-2006 Joel de Guzman

    Use, modification and distribution is subject to the Boost Software
    License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
#include <iostream>
#include <boost/fusion/sequence.hpp>
#include <boost/fusion/algorithm.hpp>

struct square
    template <typename T>
    struct result
        typedef T type;

    template <typename T>
    T operator()(T x) const
        return x * x;

    using namespace boost::fusion;

    typedef vector<int, short, double> vector_type;
    vector_type vec(2, 5, 3.3);
    transform_view<vector_type, square> transform(vec, square());
    std::cout << transform << std::endl;

    return 0;

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at