2018-10-24 23:31:26 +11:00
|
|
|
#ifndef XIV_UTILS_STREAM_H
|
|
|
|
#define XIV_UTILS_STREAM_H
|
|
|
|
|
|
|
|
#include <memory>
|
|
|
|
#include <iostream>
|
|
|
|
#include <vector>
|
|
|
|
|
2020-02-10 14:05:04 +11:00
|
|
|
namespace xiv::utils::stream
|
2018-10-24 23:31:26 +11:00
|
|
|
{
|
2020-02-10 14:05:04 +11:00
|
|
|
template< typename CharT, typename TraitsT = std::char_traits< CharT > >
|
|
|
|
class vectorwrapbuf :
|
|
|
|
public std::basic_streambuf< CharT, TraitsT >
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
vectorwrapbuf( std::vector< CharT >& vec )
|
2018-10-24 23:31:26 +11:00
|
|
|
{
|
2020-02-10 14:05:04 +11:00
|
|
|
this->setg( vec.data(), vec.data(), vec.data() + vec.size() );
|
2018-10-24 23:31:26 +11:00
|
|
|
}
|
2020-02-10 14:05:04 +11:00
|
|
|
};
|
2018-10-24 23:31:26 +11:00
|
|
|
}
|
|
|
|
#endif // XIV_UTILS_STREAM_H
|