Сегодня я столкнулся со странной ситуацией, когда мне нужна была функция, которая не могла бы неявно преобразовывать значения.
Посмотрев в 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);
}
Кто-нибудь знает, почему это так?