ヘッダーファイルを使用せずにサードパーティのライブラリを使用したい。私のコードは独自の名前空間に存在するため、グローバル名前空間を汚染したくないため、従来の前方宣言を使用できません。現在、私はそのようなものを持っています:
3rd-party-library.h----
typedef struct {...} LibData;
void lib_func (LibData *);
my-source.h-----
namespace foo {
/*forward declaration of LibData*/
class Abcd {
public:
void ghj();
private:
Libdata *data_;
};
}//namespace foo
my-source.cpp-----
#include "my-source.h"
#include <3rd-party-library.h>
namespace foo {
typedef ::LibData LibData;
void Abcd::ghj() {
//do smth with data_
}
}//namespace foo
名前空間に存在するような方法でグローバル型を前方宣言することは可能ですか?単純なtypedefは機能しません。