+template <class T, class F>
+typename std::enable_if<std::is_same<void, decltype(std::declval<F>()(std::declval<const T&>()))>::value, void>::type
+bind_flag(T& value, const char* name, std::initializer_list<const char*> aliases, const char* description,
+ std::map<T, std::string> valid_values, F callback)
+{
+ bind_flag(value, name, description, std::move(valid_values), std::move(callback));
+ alias(name, std::move(aliases));
+}
+