Вы хотите использовать полную квалификацию, то есть A::A::foo()
(или даже ::A::A::foo()
, если вы настаиваете на действительно полной квалификации). Тот факт, что функция не разрешена, просто означает, что вы ее не определили:
inline void A::A::foo() { ... }
... или пропустите inline
, если определения отсутствуют в заголовочном файле.
Кстати, я не верю в ваш аргумент «вызывает слишком много неприятностей»: если что-то по-настоящему глупо (то есть члены вашей команды согласны с тем, что это неправильно), исправьте проблему скорее раньше, чем позже! Чем дольше вы будете ждать, тем больше проблем это вызовет, и тем больше будет проблем!