У меня есть несколько перегруженных методов, которые принимают разные типы указателей.
Теперь я хочу вызвать один конкретный метод с nullptr
в качестве параметра.
Я знаю, что могу привести nullptr
к определенному типу указателя, метод, который я хочу вызвать, принимает.
Но я не хочу / не могу разыграть nullptr
.
Этот пример должен объяснить, что я пытаюсь сделать:
class Foo {
//some attributes
};
class Bar {
//some attributes
};
void myMethod (Foo*) {
//I want this method to be called
}
void myMethod (Bar*) {
//Not this one
}
int main () {
myMethod(nullptr); //Something like this
// myMethod(static_cast<nullptr>); //I don't want to write this.
return 0;
}
Если я просто позвоню с nullptr
, я получу
error: call of overloaded 'myMethod(std::nullptr_t)' is ambiguous
потому что компилятор не знает, какой из методов он должен вызывать.
Есть ли способ сделать то, что я хочу?
Нравится что-то похожее на шаблонную специализацию?