ページ 11

c++のメンバ変数の数を取得する方法について

Posted: 2018年11月25日(日) 11:02
by TK fromE
はじめまして、c++を始めて一年くらいの初心者です。
プログラミングをしている中で、自分のクラスが持ってるメンバ変数の数を取得したいのですが方法が分からず...
もしわかる方がいれば御教授いただきたいと思っております。

例えば

コード:

class hogehoge{
private:
    int m_hoge;
    int m_hoge2;
}
というクラスの場合、メンバ変数の数である2を取得する方法を知りたいです。
また今後メンバ変数が増えた場合はほぼメンテナンスなしで、3とか4とかの値が取得できるようにしていきたいです。
以上です。よろしくお願いいたします。

Re: c++のメンバ変数の数を取得する方法について

Posted: 2018年11月26日(月) 12:13
by tk-xleader
C++にはリフレクションがありませんから、一般的にはクラスのメンバ変数の数を取得する方法はありません。

クラスのメンバ変数の数を取得出来るようにするには、メンバをstd::tuple型にするとか、std::arrayにするとかといった方法はあります。あるいは、外部ライブラリに頼ってもいいのであれば、boost.fusionやboost.hanaを使うとかいう方法もあります。