c++ convert template function to normal function code example
Example 1: function template
template <class T>
void swap(T & lhs, T & rhs)
{
T tmp = lhs;
lhs = rhs;
rhs = tmp;
}
void main()
{
int a = 6;
int b = 42;
swap<int>(a, b);
printf("a=%d, b=%d\n", a, b);
// Implicit template parameter deduction
double f = 5.5;
double g = 42.0;
swap(f, g);
printf("f=%f, g=%f\n", f, g);
}
/*
Output:
a=42, b=6
f=42.0, g=5.5
*/
Example 2: c++ convert template function to normal function
#include <string>
#include <iostream>
using namespace std;
template<typename T>
void removeSubstrs(basic_string<T>& s,
const basic_string<T>& p) {
basic_string<T>::size_type n = p.length();
for (basic_string<T>::size_type i = s.find(p);
i != basic_string<T>::npos;
i = s.find(p))
s.erase(i, n);
}
int main() {
string s = "One fish, two fish, red fish, blue fish";
string p = "fish";
removeSubstrs(s, p);
cout << s << '\n';
}
The basic_string member func