12 #include <string_view>
20 const std::string name;
24 explicit constexpr arg(std::string_view name) : name_{name} {}
27 constexpr with_value<T> operator=(T&& value)
29 return {std::string{name_}, std::forward<T>(value)};
33 std::string_view name_;
37 struct is_arg_impl : std::false_type {
41 struct is_arg_impl<arg::with_value<T>> : std::true_type {
45 struct is_arg : is_arg_impl<std::decay_t<T>> {
49 constexpr
bool is_arg_v = is_arg<T>::value;
51 namespace arg_literals {
53 constexpr arg
operator"" _arg(
const char* str, std::size_t)
62 #endif // PACKIO_INTERNAL_ARG_H