【发布时间】:2011-05-25 10:55:22
【问题描述】:
我正在尝试编译以下代码:
#include <iostream>
#include <iterator>
#include <vector>
#include <boost/assign/std/vector.hpp>
#include <boost/optional.hpp>
#include <boost/range/adaptor/indirected.hpp>
#include <boost/range/algorithm/copy.hpp>
int main( int argc, char ** argv )
{
using namespace boost::assign;
using boost::adaptors::indirected;
std::vector<boost::optional<unsigned> > values;
values += 1u,2u,3u;
boost::copy( values | indirected, std::ostream_iterator<unsigned>( std::cout, " " ) );
std::cout << std::endl;
}
但是,我遇到了一些错误,例如boost::optional<unsigned> 中没有名为 element_type 的类型。然而,reference page 页面说,唯一的前提条件是存在 operator*() 一元函数。有没有办法让它工作?
【问题讨论】:
标签: c++ boost boost-optional