Есть ли способ, предположительно с использованием шаблонов, макросов или комбинации этих двух способов, чтобы я мог универсально применять функцию к различным классам объектов, но чтобы они реагировали по-разному, если у них нет определенной функции?
Я конкретно хочу применить функцию, которая будет выводить размер объекта (т.е. количество объектов в коллекции), если у объекта есть эта функция, но будет выводить простую замену (например, "N/A"), если у объекта нет. Т.е.
NO_OF_ELEMENTS( mySTLMap ) -----> [ calls mySTLMap.size() to give ] ------> 10
NO_OF_ELEMENTS( myNoSizeObj ) --> [ applies compile time logic to give ] -> "N/A"
я ожидаю, что это может быть что-то похожее на статическое утверждение, хотя я бы явно хотел скомпилировать другой путь кода, а не потерпеть неудачу на этапе сборки.