|
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:
> http://spirit.sourceforge.net/dl_more/fusion_v2/libs/fusion/doc/html/fusion/sequences/views/transform_view.html
> does not compile; I am using MinGw 3.4.2.
[snip]
> 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.
Regards,
-- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net
/*=============================================================================
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
http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
#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;
}
};
int
main()
{
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 hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net