namespace boost { namespace text { struct text_sort_key; int compare(text_sort_key const &, text_sort_key const &); namespace v1 { template<code_point_iter I, std::sentinel_for< I > S> text_sort_key collation_sort_key(I, S, collation_table const &, collation_strength = collation_strength::tertiary, case_first = case_first::off, case_level = case_level::off, variable_weighting = variable_weighting::non_ignorable, l2_weight_order = l2_weight_order::forward); template<code_point_iter I, std::sentinel_for< I > S> text_sort_key collation_sort_key(I, S, collation_table const &, collation_flags = collation_flags::none); template<code_point_range R> text_sort_key collation_sort_key(R &&, collation_table const &, collation_flags = collation_flags::none); template<code_point_iter I1, std::sentinel_for< I1 > S1, code_point_iter I2, std::sentinel_for< I2 > S2> int collate(I1, S1, I2, S2, collation_table const &, collation_strength = collation_strength::tertiary, case_first = case_first::off, case_level = case_level::off, variable_weighting = variable_weighting::non_ignorable, l2_weight_order = l2_weight_order::forward); template<code_point_iter I1, std::sentinel_for< I1 > S1, code_point_iter I2, std::sentinel_for< I2 > S2> int collate(I1, S1, I2, S2, collation_table const &, collation_flags = collation_flags::none); template<code_point_range R1, code_point_range R2> int collate(R1 const &, R2 const &, collation_table const &, collation_flags = collation_flags::none); } } }