The following example could not be compiled:
=================================================================
#include <string>
#include <boost/program_options.hpp>
namespace po = boost::program_options;
int main()
{
std::wstring test;
po::options_description desc("Allowed options");
desc.add_options()
("test", po::wvalue<std::wstring>(&test)->default_value(L"value"), "description");
}
=================================================================
It is due to wvalue::default_value tries to do lexical_cast<std::string>(std::wstring).
Also I cannot change default_value to default_value("value") as soon as it accepts only something convertible to std::wstring.
In other words it is impossible to specify default_value for wstring option.