Mam arbitralny kontener STL C, który zawiera elementy dowolnego typu T. Chcę utworzyć wektor std :: vector zawierający kopię wszystkich elementów. Jaki jest najczystszy sposób na zrobienie tego?Szablony funkcji dla dowolnych kontenerów STL zawierających typy arbitralne
template <typename C>
void myfunction(C container){
/*Derive the type T of elements within the container*/
std::vector<T> mystack;
/* Iterate over container and push_back() the elements into mystack*/
}
Pomyślałem, że wpadnę na to w C++ 11. Czy nowe słowo kluczowe "auto" działałoby tutaj? Nie miałem okazji się z tym bawić. –
@ChadBrewbaker: Nie. 'Decltype' będzie działać, ale to nie jest prostsze niż' nazwa_klasy C :: value_type'. – kennytm