«Заглушки» для неимплементированых функий.
Хотелось бы написать программу с кучей плагинов, когда каждый плагин имплементирует какую либо одну функцию. Возможно ли сделать так что при первом вызове функции funcXYZ() программа прошлась по плагинам и проверила есть ли такая и при последующих вызовах использовала найденную фунцкию. В принципе можно декларировать поинтер на функцию *funcXVZ() который вначале будет указывать на некую "заглушку" которая и будет искать реальную имплементацию и подставлять ее в поинтер. Дело в том, что эта заглушка должна знать имя функиции и адрес указателя на нее, в принципе можно сделать ето с помосщу марко. Вопрос, можно ли это сделать без препроцессора, так, чтобы все осуществлялось в run-time? Можно ли избавиться от декларации функций вообще, так что бы любая неимплементировання функция автоматом вызывала заглушку (это уже другая заглушка, с простым сообщением об ошибке)?