Предполагая, что ваш компилятор С++ поддерживает их, существует ли какая-либо особая причина не использовать __FILE__, __LINE__ и __FUNCTION__ для ведения журналов и отладки?
Я в первую очередь забочусь о том, чтобы давать пользователям вводящие в заблуждение данные, например, сообщать о некорректном номере или функции линии в результате оптимизации или в результате получить удар производительности.
В принципе, могу ли я доверять __FILE__, __LINE__ и __FUNCTION__, чтобы всегда поступать правильно?