неоднозначный вызов перегруженной функции

У меня есть две функции:

void DoSomething( const tchar* apsValue )
void DoSomething( size_t aiValue )

Теперь я хочу передать '0' в качестве size_t:

DoSomething(0);

Компилятор выдает ошибку:« неоднозначный вызов перегруженной функции "

Чтобы решить эту проблему, я могу использовать static_cast, например:

DoSomething(static_cast<size_t>(0));

Или просто:

DoSomething(size_t(0));

Один из них лучше другого? Есть ли другие подходы для решения этой проблемы?

7
задан Martin Brandl 21 February 2012 в 12:26
поделиться