#include <memory>
// 동적 순차 컨테이너( vector, deque, list ) 의 template parameter
#define CONTAINER_( some_type, elem_type ) template< class, class > class some_type, class elem_type
// 동적 순차 컨테이너의 function parameter
#define CONTAINER( some_type, elem_type ) some_type< elem_type, std::allocator< elem_type > >
template< CONTAINER_( L, LE ), CONTAINER_( R, RE ) >
inline auto& operator+=( CONTAINER( L, LE )& tot, const CONTAINER( R, RE )& some )
{
for( auto one : some )
tot.emplace_back( LE( one ) );
return tot;
}
#include <vector>
#include <list>
#include <deque>
std::vector< double > a{ 1, 2, 3 };
std::deque< char > b{ 4, 5, 6, 7 };
std::list< int > c{ 8, 9 };
#include <iostream>
using namespace std;
int main()
{
a += b += c;
for( auto v : a )
cout << v;
return 0;
}
출력 :
123456789
응 아무도 안물어봤구요