Type <codeclass="computeroutput"><spanclass="identifier">charT</span></code> used a template
argument to class template <ahref="../basic_regex.html"title="basic_regex"><codeclass="computeroutput"><spanclass="identifier">basic_regex</span></code></a>, must have a trivial
default constructor, copy constructor, assignment operator, and destructor.
In addition the following requirements must be met for objects; <spanclass="emphasis"><em>c</em></span>
of type <codeclass="computeroutput"><spanclass="identifier">charT</span></code>, <spanclass="emphasis"><em>c1</em></span>
and <spanclass="emphasis"><em>c2</em></span> of type <codeclass="computeroutput"><spanclass="identifier">charT</span>
<spanclass="keyword">const</span></code>, and <spanclass="emphasis"><em>i</em></span>
of type <codeclass="computeroutput"><spanclass="keyword">int</span></code>:
</p>
<divclass="informaltable"><tableclass="table">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Expression
</p>
</th>
<th>
<p>
Return type
</p>
</th>
<th>
<p>
Assertion / Note / Pre- / Post-condition
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
charT c
</p>
</td>
<td>
<p>
charT
</p>
</td>
<td>
<p>
Default constructor (must be trivial).
</p>
</td>
</tr>
<tr>
<td>
<p>
charT c(c1)
</p>
</td>
<td>
<p>
charT
</p>
</td>
<td>
<p>
Copy constructor (must be trivial).
</p>
</td>
</tr>
<tr>
<td>
<p>
c1 = c2
</p>
</td>
<td>
<p>
charT
</p>
</td>
<td>
<p>
Assignment operator (must be trivial).
</p>
</td>
</tr>
<tr>
<td>
<p>
c1 == c2
</p>
</td>
<td>
<p>
bool
</p>
</td>
<td>
<p>
true if c1 has the same value as c2.
</p>
</td>
</tr>
<tr>
<td>
<p>
c1 != c2
</p>
</td>
<td>
<p>
bool
</p>
</td>
<td>
<p>
true if c1 and c2 are not equal.
</p>
</td>
</tr>
<tr>
<td>
<p>
c1 < c2
</p>
</td>
<td>
<p>
bool
</p>
</td>
<td>
<p>
true if the value of c1 is less than c2.
</p>
</td>
</tr>
<tr>
<td>
<p>
c1 > c2
</p>
</td>
<td>
<p>
bool
</p>
</td>
<td>
<p>
true if the value of c1 is greater than c2.
</p>
</td>
</tr>
<tr>
<td>
<p>
c1 <= c2
</p>
</td>
<td>
<p>
bool
</p>
</td>
<td>
<p>
true if c1 is less than or equal to c2.
</p>
</td>
</tr>
<tr>
<td>
<p>
c1 >= c2
</p>
</td>
<td>
<p>
bool
</p>
</td>
<td>
<p>
true if c1 is greater than or equal to c2.
</p>
</td>
</tr>
<tr>
<td>
<p>
intmax_t i = c1
</p>
</td>
<td>
<p>
int
</p>
</td>
<td>
<p>
charT must be convertible to an integral type.
</p>
<p>
Note: type charT is not required to support this operation, if
the traits class used supports the full Boost-specific interface,
rather than the minimal standardised-interface (see traits class
requirements below).
</p>
</td>
</tr>
<tr>
<td>
<p>
charT c(i);
</p>
</td>
<td>
<p>
charT
</p>
</td>
<td>
<p>
charT must be constructable from an integral type.