четверг, 21 августа 2008 г.

Почему полезно возвращать const-значение

Редки случаи, когда модификатор const, добавленный к возвращаемому типу, может помешать. Вот пример, когда он полезен.


void SomeFunc(int a);

template<class T>
void f1(T & a) {
....
SomeFunc(a); // для некоторых типов SomeFunc меняет a, для некоторых - нет.
}

const int ret_const_int() { return 0; }
int ret_int() { return 0; }

void f()
{
f1(ret_const_int()); // Нет ошибки, если SomeFunc не менят аргумент для int
f1(ret_int()); // ошибка
}