result_type operator()(const argument_type& uri) const { size_t seed = 0; if (uri.extract()) { seed += 11; } if (uri.executable()) { seed += 2003; } boost::hash_combine(seed, uri.value()); boost::hash_combine(seed, uri.output_file()); return seed; }