Hi!

When I try to use the parse_config_file() function from the program_options library I get a link error saying (built on OS X 10.5):

Undefined symbols: "boost::program_options::basic_parsed_options<char> boost::program_options::parse_config_file<char>(std::basic_istream<char, std::char_traits<char> >&, boost::program_options::options_description const&, bool)", referenced from: _main in main.cc.o ld: symbol(s) not found

Taking a closer look at the code I discovered that the function is declared as a template in boost/program_options/parsers.hpp but is defined in boost/libs/program_options/src/parsers.cpp.
Is this really valid? I've thought that templated functions need to be defined along with the declaration as the template arguments need to be evaluated at compile time.
Or am I missing something?

Thanks in advance!
Arthur