Journée de travail du 24 février 2000 des GTs COOSI et SIMédia :
Programmation générique, composants et patrons de conception.
9

premier pas vers la programmation générique

struct int_u8
{
  typedef int_u16 cumul_type;
  static const int_u8 zero;
  //...
};

template< typename T >
T mean( const buffer<T>& buf )
{
  typename T::cumul_type cumul = T::zero;
  for ( size_t i = 0; i < buf.size(); ++i )
    cumul += buf[i];
  return cumul / buf.size();
}

int main()
{
  buffer<int_u8> buf;
  //...
  int_u8 value = mean( buf );
}

Ici, la déduction d'un type et d'une variable à partir d'un paramètre permet d'obtenir
la généricité d'un calcul vis-à-vis du type des données.