Wie ist es möglich, eine Templat Funktionen mit dem STL versehen Algorithmen in <algorithm>
zu benutzen? Zum Beispiel dieser Code nicht kompilieren, weil Compiler Template-Parameter für die predicate
Funktion ableiten kann:STL-Algorithmen mit Templat-Funktionen als Parameter
#include <iostream>
#include <algorithm>
template< typename CharType >
bool predicate(const CharType& c)
{
return c == '0';
}
std::string
process_string(const std::string& str)
{
std::string result;
std::copy_if(str.begin(),
str.end(),
std::back_inserter(result),
predicate);
return result;
}
int main()
{
std::cout << process_string("AK0NNDK0ASDAS0") << std::endl;
return 0;
}
'auto &&' ist generischer, aber in diesem speziellen Fall nicht erforderlich. – Yakk
Leider funktioniert der Lambda-Code nicht in C++ 11, die ein Tag in der Frage ist. Generische Lambdas funktionieren ab C++ 14. – stefaanv