Ich möchte eine Vorlage für ein Argument einer Funktion machen.C++ Vorlage für Std :: Vektor mit benutzerdefinierten Speicherzuordner
Das Argument ist ein std::vector<type>
mit einem Zuordner.
Standardmäßig wird der Standardspeicherzuordner verwendet, es kann jedoch auch ein benutzerdefinierter Zuordner verwendet werden.
Der folgende Code funktioniert nicht. Wie behebe ich das?
template <typename T, typename T2=std::allocator<T>>
void pad_zero(std::vector<T,T2> vec, uint32_t n){
uint32_t i;
for (i = 0; i < n; i++){
vec.push_back(0);
}
}
Danke.
http://coliru.stacked-crooked.com/a/3ad139c309b53f99; '= std :: allocator' ist nicht notwendig. –
LogicStuff
Funktioniert nicht wie? Übrigens ändert sich nur die lokale Variable 'vec'. – KIIV
beide Intel C Compiler und GCC beschwert sich mit einem <> innerhalb der Vorlage <...>. Das Problem scheint, dass das zweite Template-Argument vom 1. Template-Argument abhängt. – rxu