Ejemplo n.º 1
0
TargetContainer
map(
	SourceRange &&_source,
	Function const &_function
)
{
	TargetContainer result;

	fcppt::algorithm::detail::map_reserve(
		result,
		_source
	);

	for(
		fcppt::algorithm::range_element_type<
			SourceRange
		> element
		:
		_source
	)
		result.insert(
			result.end(),
			_function(
				element
			)
		);

	return
		result;
}
Ejemplo n.º 2
0
 void delAll(TargetContainer& geoms)
 {
   for (typename TargetContainer::const_iterator i = geoms.begin(),
        e = geoms.end(); i != e; ++i)
   {
     Geom* g = dynamic_cast<Geom*>(*i);
     delete g;
   }
 }
Ejemplo n.º 3
0
TargetContainer
map_optional(
	Source &&_source,
	Function const &_function
)
{
	TargetContainer result;

	for(
		fcppt::algorithm::range_element_type<
			Source
		> element
		:
		_source
	)
	{
		auto result_element(
			_function(
				element
			)
		);

		static_assert(
			fcppt::is_optional<
				typename
				std::decay<
					decltype(
						result_element
					)
				>::type
			>::value,
			"map_optional requires a function that returns an optional"
		);


		if(
			result_element.has_value()
		)
			result.insert(
				result.end(),
				std::move(
					result_element.get_unsafe()
				)
			);
	}

	return
		result;
}
Ejemplo n.º 4
0
void push_back( TargetContainer& x, const SourceContainer& y ){
    x.insert( x.end(), y.begin(), y.end() ) ;
}