Неявное преобразование функции остановки

Сегодня я столкнулся со странной ситуацией, когда мне нужна была функция, которая не могла бы неявно преобразовывать значения.

Посмотрев в Google, я обнаружил http://www.devx.com/cplus/10MinuteSolution/37078/1954

Но я подумал, что было бы немного глупо использовать перегрузку функций для всех остальных. type Я хочу заблокировать, поэтому вместо этого я сделал это.


void function(int& ints_only_please){}

int main() { char a=0; int b=0; function(a); function(b); }

Я показал код другу, и он посоветовал добавить const перед int, чтобы переменная не редактировалась, однако, когда я действительно начал компилировать нормально, но этого не должно быть, посмотрите ниже, чтобы понять, что я имею в виду


void function(const int& ints_only_please){}

int main() { char a=0; int b=0; function(a); //Compiler should stop here but it doesn't with const int function(b); }

Кто-нибудь знает, почему это так?

5
задан General Sirhc 5 January 2011 в 11:52
поделиться