Некоторые код, я не имею никакого контроля над имеет ряд перегруженных функций, который принимает различные типыC++ шаблон и неоднозначный вызов функции
т.е.
setValue(int)
setValue(std::string)
setValue(bool)
И у меня есть шаблон функции, которая бы Idealy взять любой из этих типов и передать его правильной функции setValue.
template <class T>
do_something(T value) {
...
setValue(value);
Но я получаю эту ошибку
error: call to member function 'SetValue' is ambiguous
Что я могу сделать, чтобы решить эту проблему без копирования и вставок моего кода для каждого типа, как писатели SetValue есть?
Какой тип вы пытаетесь создать экземпляр ваш шаблон для? Скорее всего, это тип, который не имеет * точного * соответствия в перегруженных функциях, но более одного правильного преобразования. – jcoder
Вы пытались ':: setValue ((T) value);'? – k06a
Например, 'char' был бы настолько неоднозначным, насколько он мог бы получить :) – filmor