Я пишу статистическую систему. Он должен сделать некоторый вывод с заданными параметрами. Например:Переменные адреса
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
}
}
Посмотрите, каждый обновление вызова мне нужно новое значение всех переданных переменных. Поэтому я решил передать их адреса в памяти. Но теперь данные состоят из адреса. Как я могу получить от этого ценность? Возможно ли, если нет, что вы можете посоветовать по этой проблеме?
Код хранения адрес временной переменной, которая не уедешь хорошо. – aschepler