:relfileprefix: ../../../
[#boost-urls-grammar-not_empty_rule]

== xref:boost.adoc[pass:[boost]]::xref:boost/urls.adoc[pass:[urls]]::xref:boost/urls/grammar.adoc[pass:[grammar]]::not_empty_rule


Match another rule, if the result is not empty


=== Synopsis

Declared in header `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/grammar/not_empty_rule.hpp#L103[boost/url/grammar/not_empty_rule.hpp,window=blank_]>`

[source,cpp,subs="verbatim,macros,-callouts"]
----
template<class Rule>
constexpr
pass:q[_implementation-defined_]
not_empty_rule(Rule const& r);
----

=== Description


This adapts another rule such that
when an empty string is successfully
parsed, the result is an error.
[,cpp]
----
using value_type = typename Rule::value_type;
----

=== Rules are used with the function

xref:boost/urls/grammar/parse-02.adoc[parse]
.
[,cpp]
----
system::result< decode_view > rv = parse( "Program%20Files",
    not_empty_rule( pct_encoded_rule( unreserved_chars ) ) );
----





=== Parameters

|===
| Name | Description 

| *r*
| 
The rule to match

|===




=== See Also


xref:boost/urls/grammar/parse-02.adoc[parse]
,
xref:boost/urls/pct_encoded_rule.adoc[pct_encoded_rule]
,
xref:boost/urls/unreserved_chars.adoc[unreserved_chars]
.



