Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > шаблон - параметр шаблона


Автор: boostcoder 13.6.2011, 12:14
всем доброго дня.
не пойму, что в этом коде не так. компилятор ругается.
Код

#include <iostream>
#include <iterator>
#include <string>
#include <vector>
#include <list>
#include <deque>

template<
   typename T,
   template<class> class C
>
std::ostream& operator<< (std::ostream& os, const C<T>& o) {
   std::copy(o.begin(), o.end(), std::ostream_iterator<T>(std::cout, ", "));
   return os << std::flush;
}

int main() {
   std::vector<std::string> vector;
   std::list<std::string> list;
   std::deque<std::string> deque;
   
   std::cout << vector;
   std::cout << list;
   std::cout << deque;
   
}

http://liveworkspace.org/code/6b2170393e4fa54968fda1884477bed3

спасибо.

Автор: azesmcar 13.6.2011, 12:38
про аллокатор забыл.
Код

#include <iostream>
#include <iterator>
#include <string>
#include <vector>
#include <list>
#include <deque>
template<typename T, typename A, template <class, class> class C>
std::ostream& operator << (std::ostream& os, const C<T, A>& o)
{
    std::copy(o.begin(), o.end(), std::ostream_iterator<T>(std::cout, ", "));
    return os << std::flush;
}
int main() {
    std::vector<std::string> vector;
    std::list<std::string> list;
    std::deque<std::string> deque;

    std::cout << vector;
    std::cout << list;
    std::cout << deque;
}

Автор: boostcoder 13.6.2011, 12:41
azesmcar, спасибо огромное smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)