Overload 'register_style' template instead of awkward multi-naming

Hopefully this is an improvement. :-)
This commit is contained in:
Evan Driscoll 2018-06-05 22:25:17 -05:00
parent d7677fca6f
commit fe09e0dd6b
3 changed files with 8 additions and 8 deletions

View File

@ -151,7 +151,7 @@ class basic_print_stylizer
// Predicate is conceptually 'bool (json)' here
template <typename Predicate>
auto register_style_object_pred(
auto register_style(
Predicate p,
print_style style = print_style())
-> typename std::enable_if<details::takes_arguments<Predicate, BasicJsonType>::value, print_style&>::type
@ -172,7 +172,7 @@ class basic_print_stylizer
// 'metawrapper<json_pointer>'. So if you pass 'bool (json)', it
// will look like it can pass a metawrapper<json_pointer> to it
template <typename Predicate>
auto register_style_context_pred(
auto register_style(
Predicate p,
print_style style = print_style())
-> typename std::enable_if < !details::takes_arguments<Predicate, BasicJsonType>::value, print_style& >::type
@ -189,7 +189,7 @@ class basic_print_stylizer
string_t str,
print_style style = print_style())
{
return register_style_context_pred([str](const json_pointer_t& pointer)
return register_style([str](const json_pointer_t& pointer)
{
return (pointer.cbegin() != pointer.cend())
&& (*pointer.crbegin() == str);

View File

@ -10956,7 +10956,7 @@ class basic_print_stylizer
// Predicate is conceptually 'bool (json)' here
template <typename Predicate>
auto register_style_object_pred(
auto register_style(
Predicate p,
print_style style = print_style())
-> typename std::enable_if<details::takes_arguments<Predicate, BasicJsonType>::value, print_style&>::type
@ -10977,7 +10977,7 @@ class basic_print_stylizer
// 'metawrapper<json_pointer>'. So if you pass 'bool (json)', it
// will look like it can pass a metawrapper<json_pointer> to it
template <typename Predicate>
auto register_style_context_pred(
auto register_style(
Predicate p,
print_style style = print_style())
-> typename std::enable_if < !details::takes_arguments<Predicate, BasicJsonType>::value, print_style& >::type
@ -10994,7 +10994,7 @@ class basic_print_stylizer
string_t str,
print_style style = print_style())
{
return register_style_context_pred([str](const json_pointer_t& pointer)
return register_style([str](const json_pointer_t& pointer)
{
return (pointer.cbegin() != pointer.cend())
&& (*pointer.crbegin() == str);

View File

@ -286,7 +286,7 @@ TEST_CASE("serialization")
print_stylizer stylizer;
stylizer.get_default_style() = print_style::preset_multiline;
stylizer.register_style_context_pred(
stylizer.register_style(
[] (const json_pointer<json>& context)
{
// Matches if context[-2] is "each elem on one line"
@ -332,7 +332,7 @@ TEST_CASE("serialization")
print_stylizer stylizer;
stylizer.get_default_style() = print_style::preset_multiline;
stylizer.register_style_object_pred(
stylizer.register_style(
[] (const json & j)
{
return j.type() == json::value_t::array;