fork download
  1. #include <boost/program_options.hpp>
  2.  
  3. namespace po = boost::program_options;
  4.  
  5. template <typename C, typename E>
  6. inline bool contains(const C& container, const E& element) {
  7. return container.find(element) != container.end();
  8. }
  9.  
  10. template <typename K, typename V>
  11. V& updateFromConfig(V& updatee, const K& key, const po::variables_map& vm) {
  12. if (contains(vm, key)) {
  13. // option 1
  14. //updatee = vm[key];
  15. // option 2
  16. //updatee = vm[key].variable_value();
  17. // option 3
  18. updatee = vm[key].template as<V>();
  19. // option 4
  20. // updatee = vm[key].as();
  21. }
  22. return updatee;
  23. }
  24.  
  25. template size_t& updateFromConfig<char*,size_t>(size_t& updatee, char* const& key, const po::variables_map& vm);
  26.  
  27. int main() {
  28. return 0;
  29. }
  30.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
/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
stdout
Standard output is empty