次のことを達成することは、どういうわけか可能ですか?
x.hpp-このファイルは他の多くのクラスに含まれています
class x_impl; //forward declare
class x {
public:
//methods...
private:
x_impl* impl_;
};
x.cpp-実装
#include <conrete_x>
typedef concrete_x x_impl; //obviously this doesn't work
//implementation of methods...
したがって、基本的には、ユーザーにファイルx.hppを含めてもらいたいのですが、conrete_x.hppヘッダーには注意してください。
私はconcrete_x
ポインタでしか使用できず、プライベートデータメンバーとしてのみ表示されるため、コンパイラが準備するスペースの量を知るには、前方宣言で十分です。よく知られている「pimplイディオム」によく似ています。
これを手伝ってくれませんか。
PS。void*
を使ってキャストしたくない。