Исходный код не должен компилироваться, gcc здесь верен. См. [Class.member.lookup]:
В противном случае (т. Е. C не содержит декларации f или результирующий набор объявлений пуст), S (f, C) изначально пуст. Если C имеет базовые классы, вычислите набор поиска для f в каждом подбодете прямого базового класса Bi и объедините каждое такое поисковое множество S (f, Bi) в свою очередь в S (f, C). - [..] - В противном случае, если множества объявлений S (f, Bi) и S (f, C) различаются, слияние неоднозначно ...
blockquote>Начальный набор объявлений (
overload
не имеет методов) - так объедините все базы, все из которых имеют разные наборы. Таким образом, слияние должно потерпеть неудачу. Это правило применяется только в том случае, если набор объявленийoverload
пуст, поэтому явное добавлениеusing F1::operator()
работает.
Итак, я понял, что проблема в том, что я не использовал internetexplorermedium. Затем я просто использовал готовое состояние вместо того, чтобы использовать окно сообщения в качестве кнопки паузы, что сделало программу более эффективной. Спасибо за помощь