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

Tags:

Misc Example