@@ -151,7 +151,7 @@ struct try_value_to_tag { };
151151template <class T >
152152struct is_string_like ;
153153
154- /* * Conversion category for strings.
154+ /* * Conversion category constant for strings.
155155
156156 String types are represented as JSON strings.
157157
@@ -221,7 +221,7 @@ using string_category = std::integral_constant<
221221template <class T >
222222struct is_path_like ;
223223
224- /* * Conversion category for filesystem paths.
224+ /* * Conversion category constant for filesystem paths.
225225
226226 Paths are represented in JSON as strings.
227227
@@ -301,7 +301,7 @@ using path_category = std::integral_constant<
301301template <class T >
302302struct is_sequence_like ;
303303
304- /* * Conversion category for sequences.
304+ /* * Conversion category constant for sequences.
305305
306306 Sequences are represented in JSON as arrays.
307307
@@ -386,7 +386,7 @@ using sequence_category = std::integral_constant<
386386template <class T >
387387struct is_map_like ;
388388
389- /* * Conversion category for maps.
389+ /* * Conversion category constant for maps.
390390
391391 Maps are represented in JSON as objects. Such representation limits this
392392 category to 1-to-1 maps (as opposed to 1-to-many e.g. @ref std::multimap)
@@ -470,7 +470,7 @@ using map_category = std::integral_constant<
470470template <class T >
471471struct is_tuple_like ;
472472
473- /* * Conversion category for tuples.
473+ /* * Conversion category constant for tuples.
474474
475475 Tuples are represented in JSON as arrays.
476476
@@ -528,7 +528,7 @@ struct is_null_like
528528 : std::false_type
529529{ };
530530
531- /* * Conversion category for null types.
531+ /* * Conversion category constant for null types.
532532
533533 Null types are represented in JSON as the `null` literal.
534534
@@ -607,7 +607,7 @@ using null_category = std::integral_constant<
607607template <class T >
608608struct is_described_class ;
609609
610- /* * Conversion category for described classes.
610+ /* * Conversion category constant for described classes.
611611
612612 Described classes are represented in JSON as objects with an element for
613613 each described data member. Described bases are flattened, that is members
@@ -687,7 +687,7 @@ using described_class_category = std::integral_constant<
687687template <class T >
688688struct is_described_enum ;
689689
690- /* * Conversion category for described enums.
690+ /* * Conversion category constant for described enums.
691691
692692 Described enums are serialized as strings when their value equals to a
693693 described enumerator, and as integers otherwise. The reverse operation
@@ -750,7 +750,7 @@ using described_enum_category = std::integral_constant<
750750template <class T >
751751struct is_variant_like ;
752752
753- /* * Conversion category for variants.
753+ /* * Conversion category constant for variants.
754754
755755 Variants are serialized the same way their active alternative is
756756 serialized. The opposite conversion selects the first alternative for which
@@ -815,7 +815,7 @@ using variant_category = std::integral_constant<
815815template <class T >
816816struct is_optional_like ;
817817
818- /* * Conversion category for optionals.
818+ /* * Conversion category constant for optionals.
819819
820820 Optionals are represented in JSON as `null` if not engaged (i.e. does not
821821 store a value), or as the stored type otherwise.
@@ -853,14 +853,21 @@ using optional_category = std::integral_constant<
853853using unknown_category = std::integral_constant<
854854 conversion_category, conversion_category::unknown>;
855855
856- /* * Determines the category of conversion of a type.
856+ /* * Overrides the category of conversion of a type.
857857
858- Provides the member constant `value` that is equal to an enumerator of
859- @ref conversion_category that represents the suitable conversion category
860- of T. The primary template attempts to deduce the category .
858+ Specializations should provide the static member constant `value` that is
859+ equal to an enumerator of @ref conversion_category that represents the
860+ suitable conversion category of T in context `Ctx` .
861861
862- Users can specialize the trait for their own types if the deduction fails.
863- For example:
862+ The primary template's `value` is equal to @ref
863+ conversion_category::unknown.
864+
865+ Use `void` for `Ctx` (the default) if the category should apply regardless
866+ of context.
867+
868+ The third template parameter can be used for conditional specializations.
869+
870+ Usage example:
864871
865872 @code
866873 namespace boost {
@@ -874,7 +881,7 @@ using unknown_category = std::integral_constant<
874881 } // namespace json
875882 @endcode
876883
877- @see @ref value_from, @ref value_to, \<\<Custom Conversions>> .
884+ @see \<\<Custom Conversions>>, @ref value_from, @ref value_to.
878885*/
879886template <class T , class Ctx = void , class Enable = void >
880887struct use_category ;
0 commit comments