コードが利用できないサードパーティのライブラリとやり取りするアプリケーションをデバッグしています。ヘッダーと .so のみが利用可能です。これで、デバッガーにロードして、サードパーティ ライブラリで宣言されたクラスのプライベート メンバーの変数値を確認できますが、オブジェクトの数が膨大であるため、後で分析できるコンソールに出力するメカニズムを作成したいと考えています。私はこのようなものを思いついた
サードパーティ ヘッダー
class A
{
private:
int i;
};
上記のクラスには追加の詳細を含めていません
Debugprinter.cpp
#include <thirdpartheaders>
template <typename T> class debugprinter
{
friend class T;
public :
void printonconsole()
{
T a;
std::cout << std::endl << a.i << std::endl;
return;
}
}
これでコンパイルしようとしましたが、未定義の型 T をテンプレート クラスのフレンドとして宣言できず、このエラーが発生するようです
エラー: i は x::acc() からアクセスできません
テンプレート以外の debugprinter を作成することでこの問題を解決できるようになりましたが、好奇心から、入力型パラメーターのフレンドになるテンプレート クラスを作成する方法はありますか?
ありがとう