Program Listing for File TemporaryConfigOverride.hpp¶
↰ Return to documentation for file (include/dish2/config/TemporaryConfigOverride.hpp)
#pragma once
#ifndef DISH2_CONFIG_TEMPORARYCONFIGOVERRIDE_HPP_INCLUDE
#define DISH2_CONFIG_TEMPORARYCONFIGOVERRIDE_HPP_INCLUDE
#include <string>
#include "../../../third-party/Empirical/include/emp/tools/string_utils.hpp"
#include "cfg.hpp"
namespace dish2 {
class TemporaryConfigOverride {
std::string config_name;
std::string config_bak;
public:
template<typename T>
TemporaryConfigOverride(const std::string& name, const T& temporary_override)
: config_name( name )
, config_bak( dish2::cfg( config_name ) )
{
dish2::cfg.Set( config_name, emp::to_string(temporary_override) );
}
~TemporaryConfigOverride() { dish2::cfg.Set( config_name, config_bak ); }
};
} // namespace dish2
#endif // #ifndef DISH2_CONFIG_TEMPORARYCONFIGOVERRIDE_HPP_INCLUDE