Informs the compiler that the specified class has a home module that will be specified by #pragma ishome.
This class's virtual function table, along with certain inline functions, will not be generated as static. Instead, they will be referenced as externals in the compilation unit of the class in which #pragma ishome is specified.
A warning will be produced if there is a #pragma ishome without a matching #pragma hashome.
// a.h
struct S
{
virtual void foo() {}
virtual void bar();
};
// a.C
#pragma ishome(S)
#pragma hashome (S)
#include "a.h"
int main()
{
S s;
s.foo();
s.bar();
}
// b.C
#pragma hashome(S)
#include "a.h"
void S::bar() {}