Я привык к этому:
class Db {
_Commit(char *file, int line) {
Log("Commit called from %s:%d", file, line);
}
};
#define Commit() _Commit(__FILE__, __LINE__)
но большая проблема в том, что я переопределяю слово Commit глобально, а в инфраструктуре приложений 400 тыс. строк это проблема. И я не хочу использовать определенное слово, например DbCommit: мне не нравятся сокращения, например db->DbCommit(), или для передачи значений вручную везде: db->Commit(__FILE__, __LINE__) хуже.
Итак, любой совет?