の重要な機能はMyClass
、メンバーの 1 つのメソッドをすばやく呼び出すことです。この呼び出しのインライン化を奨励しようとしています。メンバーのタイプはFoo
です。その実装とインターフェースを匿名の名前空間に配置して非表示 にしたいと考えています。Foo
関連するソース ファイルとヘッダー ファイルが現在どのように設定されているかを以下に示します...
test.hには、次のものがあります。
struct Foo;
class MyClass {
public:
void doStuff();
private:
Foo f;
inline unsigned long long int code() { return f.getCode(); }
};
test.cppには、次のものがあります。
namespace
{
struct Foo {
public:
unsigned long long int getCode() {
// ...
}
};
} // end anon namespace
void MyClass::doStuff() {
// do stuff, such as calling code()
}
もちろん、問題は、 のインライン定義のコンテキストでは、 が完全な型ではないことですMyClass::code()
。f
Foo
インライン化しながら非表示にする方法はありますMyClass::code()
か?