// Description: push_back output
#ifndef PASTELSYS_PUSH_BACK_OUTPUT_H
#define PASTELSYS_PUSH_BACK_OUTPUT_H
#include "pastel/sys/output/output_concept.h"
namespace Pastel
{
template <typename Container>
class PushBack_Output
{
public:
explicit PushBack_Output(Container& container)
: container_(container)
{
}
template <typename That>
bool operator()(That&& that) const
{
container_.push_back(std::forward<That>(that));
return true;
}
private:
Container& container_;
};
template <typename Container>
PushBack_Output<Container> pushBackOutput(
Container& container)
{
return PushBack_Output<Container>(container);
}
}
#endif