Сегодня я столкнулся со странной ситуацией, когда мне нужна была функция для неявного преобразования значений.
После некоторого просмотра в Google я нашел это http://www.devx.com/cplus/10MinuteSolution/37078/1954
Но я подумал, что было бы немного глупо использовать перегрузку функций для каждого другого типа, который я хочу заблокировать, поэтому вместо этого я сделал это.
<code>
void function(int& ints_only_please){}</p>
<p>int main()
{
char a=0;
int b=0;
function(a);
function(b);
}
Я показал код другу, и он предложил добавить const перед int, чтобы переменная не редактировалась, однако, когда я начал компилировать нормально, но не должен, посмотрите ниже, чтобы понять, что я имею в виду
<code>
void function(const int& ints_only_please){}</p>
<p>int main()
{
char a=0;
int b=0;
function(a); //Compiler should stop here but it doesn't with const int
function(b);
}
Кто-нибудь знает, почему это так?