Здравствуйте, Sni4ok, Вы писали:
S>S>void foo(double); // 1
S>void foo(char*); // 2
S>int main(){
S>foo(false); //*
S>foo(true); //**
S>bool b = false;
S>foo(b); //***
S>}
S>
S>в случае (*) выдаёт ошибку, что не может выбрать перегруженную функцию
1. 0 — есть int, а более точно — 0 это есть литеральная константа
2. А вообще лучше всего избегать перегрузки по численным типам и указателям, если имеется такая возможность.
т.е. в случае с
foo (false);
нужно вероятно что-то похожее на
foo(static_cast<string*>(false));
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>