私は統計システムを書いています。指定されたパラメーターで何らかの出力を作成する必要があります。例えば:
float getSunActivity() { ... }
int getEarthActivity() { ... }
StatisticSystem::track("sun_activity", boost::any(getSunActivity()));
StatisticSystem::track("earth_activity", boost::any(getEarthActivity()));
class StatisticSystem
{
typedef std::map<string, const boost::any*> stats;
stats mStatsData;
static void track(const string &name, const boost::any ¶m);
void update();
};
StaticSystem::track(const string &name, const boost::any ¶m)
{
mStatsData[name] = ¶m;
}
StaticSystem::update()
{
BOOST_FOREACH(stats::value_type &row, mStatsData)
{
string data = lexical_cast<string>(&row.second);
cout << data << "\n";
// Usage of 'data' value
}
}
ほら、渡されたすべての変数の新しい値で必要な各更新呼び出し。そこで、メモリ内のアドレスを渡すことにしました。しかし今、データはアドレスで構成されています。そこからどのように価値を得ることができますか?できない場合、この問題について何をアドバイスできますか?