Я знаю, що вбудовані функції члена за визначенням повинні йти в заголовок. Але що, якщо неможливо помістити реалізацію функції в заголовок? Візьмемо таку ситуацію:
Файл Ах
#pragma once
#include "B.h"
class A{
B b;
};
Файл Bh
#pragma once
class A; //forward declaration
class B{
inline A getA();
};
Завдяки циркулярному включенню я повинен поставити реалізацію getA
в
B.cpp
#include "B.h"
#include "A.h"
inline A B::getA(){
return A();
}
Чи буде компілятор вбудованим getA
? Якщо так, яке вбудоване ключове слово є значущим (ключовим у заголовку чи ключовим файлом .cpp)? Чи існує інший спосіб внести визначення вбудованої функції-члена у файл .cpp?