#include <boost/program_options.hpp>
namespace po = boost::program_options;
template <typename C, typename E>
inline bool contains(const C& container, const E& element) {
return container.find(element) != container.end();
}
template <typename K, typename V>
V& updateFromConfig(V& updatee, const K& key, const po::variables_map& vm) {
if (contains(vm, key)) {
// option 1
//updatee = vm[key];
// option 2
//updatee = vm[key].variable_value();
// option 3
updatee = vm[key].template as<V>();
// option 4
// updatee = vm[key].as();
}
return updatee;
}
template size_t& updateFromConfig<char*,size_t>(size_t& updatee, char* const& key, const po::variables_map& vm);
int main() {
return 0;
}
I2luY2x1ZGUgPGJvb3N0L3Byb2dyYW1fb3B0aW9ucy5ocHA+CgpuYW1lc3BhY2UgcG8gPSBib29zdDo6cHJvZ3JhbV9vcHRpb25zOwoKdGVtcGxhdGUgPHR5cGVuYW1lIEMsIHR5cGVuYW1lIEU+CmlubGluZSBib29sIGNvbnRhaW5zKGNvbnN0IEMmIGNvbnRhaW5lciwgY29uc3QgRSYgZWxlbWVudCkgewogICAgcmV0dXJuIGNvbnRhaW5lci5maW5kKGVsZW1lbnQpICE9IGNvbnRhaW5lci5lbmQoKTsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lIEssIHR5cGVuYW1lIFY+ClYmIHVwZGF0ZUZyb21Db25maWcoViYgdXBkYXRlZSwgY29uc3QgSyYga2V5LCBjb25zdCBwbzo6dmFyaWFibGVzX21hcCYgdm0pIHsKICAgIGlmIChjb250YWlucyh2bSwga2V5KSkgewogICAgICAgIC8vIG9wdGlvbiAxCiAgICAgICAgLy91cGRhdGVlID0gdm1ba2V5XTsKICAgICAgICAvLyBvcHRpb24gMgogICAgICAgIC8vdXBkYXRlZSA9IHZtW2tleV0udmFyaWFibGVfdmFsdWUoKTsKICAgICAgICAvLyBvcHRpb24gMwogICAgICAgIHVwZGF0ZWUgPSB2bVtrZXldLnRlbXBsYXRlIGFzPFY+KCk7CiAgICAgICAgLy8gb3B0aW9uIDQKICAgICAgICAvLyB1cGRhdGVlID0gdm1ba2V5XS5hcygpOwogICAgfQogICAgcmV0dXJuIHVwZGF0ZWU7Cn0KCnRlbXBsYXRlIHNpemVfdCYgdXBkYXRlRnJvbUNvbmZpZzxjaGFyKixzaXplX3Q+KHNpemVfdCYgdXBkYXRlZSwgY2hhciogY29uc3QmIGtleSwgY29uc3QgcG86OnZhcmlhYmxlc19tYXAmIHZtKTsKCmludCBtYWluKCkgewogICAgcmV0dXJuIDA7Cn0K
/home/q07c0r/ccSHATwk.o: In function `unsigned int& updateFromConfig<char*, unsigned int>(unsigned int&, char* const&, boost::program_options::variables_map const&)':
prog.cpp:(.text._Z16updateFromConfigIPcjERT0_S2_RKT_RKN5boost15program_options13variables_mapE[_Z16updateFromConfigIPcjERT0_S2_RKT_RKN5boost15program_options13variables_mapE]+0x10f): undefined reference to `boost::program_options::abstract_variables_map::operator[](std::string const&) const'
collect2: error: ld returned 1 exit status