From: Gerald Pfeifer <gerald@pfeifer.com>
To: Jonathan Wakely <jwakely@redhat.com>
Cc: gcc-patches@gcc.gnu.org, libstdc++@gcc.gnu.org
Subject: Re: [wwwdocs] Document allocator_traits<A>::rebind_alloc assertion with GCC 13
Date: Fri, 3 Mar 2023 23:47:41 +0100 (CET) [thread overview]
Message-ID: <d412cda1-2a43-cc3e-fc44-bcdd3fa82b2e@pfeifer.com> (raw)
In-Reply-To: <20230302205614.1564709-1-jwakely@redhat.com>
On Thu, 2 Mar 2023, Jonathan Wakely via Gcc-patches wrote:
> Pushed to wwwdocs.
Thank you!
> +If an allocator type <tt>Alloc<T></tt>
Note that HTML 5 complains about the use of <tt> and we are using <code>
instead.
I just pushed the following patch addressing that. (The diff looks a bit
bigger due to changes re line breaks.)
Gerald
commit 5a75fbda8c3c647b2ef659ffe67a031ee957abe6
Author: Gerald Pfeifer <gerald@pfeifer.com>
Date: Fri Mar 3 23:41:36 2023 +0100
gcc-13: Use <code> instead of <tt>
diff --git a/htdocs/gcc-13/porting_to.html b/htdocs/gcc-13/porting_to.html
index 953e1453..733bb254 100644
--- a/htdocs/gcc-13/porting_to.html
+++ b/htdocs/gcc-13/porting_to.html
@@ -150,8 +150,8 @@ previous behavior.
GCC 13 now checks that allocators used with the standard library
can be "rebound" to allocate memory for a different type,
as required by the allocator requirements in the C++ standard.
-If an allocator type <tt>Alloc<T></tt>
-cannot be correctly rebound to another type <tt>Alloc<U></tt>,
+If an allocator type <code>Alloc<T></code>
+cannot be correctly rebound to another type <code>Alloc<U></code>,
you will get an error like this:
</p>
@@ -161,26 +161,27 @@ you will get an error like this:
<p>
The assertion checks that rebinding an allocator to its own value type is a
-no-op, which will be true if its <tt>rebind</tt> member is defined correctly.
+no-op, which will be true if its <code>rebind</code> member is defined correctly.
If rebinding it to its own value type produces a different type,
then the allocator cannot be used with the standard library.
</p>
<p>
-The most common cause of this error is an allocator type <tt>Alloc<T></tt>
-that derives from <tt>std::allocator<T></tt> but does not provide its own
-<tt>rebind</tt> member. When the standard library attempts to rebind the
-allocator using <tt>Alloc<T>::rebind<U></tt> it finds the
-<tt>std::allocator<T>::rebind<U></tt> member from the base class,
-and the result is <tt>std::allocator<U></tt> instead of
-<tt>Alloc<U></tt>.
+The most common cause of this error is an allocator type
+<code>Alloc<T></code> that derives from
+<code>std::allocator<T></code> but does not provide its own
+<code>rebind</code> member. When the standard library attempts to rebind the
+allocator using <code>Alloc<T>::rebind<U></code> it finds the
+<code>std::allocator<T>::rebind<U></code> member from the base
+class, and the result is <code>std::allocator<U></code> instead of
+<code>Alloc<U></code>.
</p>
<p>
-The solution is to provide a correct <tt>rebind</tt> member as shown below.
-A converting constructor must also be provided, so that that an
-<tt>Alloc<U></tt> can be constructed from an <tt>Alloc<T></tt>,
-and vice versa:
+The solution is to provide a correct <code>rebind</code> member as shown
+below. A converting constructor must also be provided, so that that an
+<code>Alloc<U></code> can be constructed from an
+<code>Alloc<T></code>, and vice versa:
</p>
<pre><code>
template<class T>
@@ -197,9 +198,10 @@ class Alloc
</code></pre>
<p>
-Since C++20, there is no <tt>rebind</tt> member in <tt>std::allocator</tt>,
-so deriving your own allocator types from <tt>std::allocator</tt> is simpler
-and doesn't require the derived allocator to provide its own <tt>rebind</tt>.
+Since C++20, there is no <code>rebind</code> member in
+<code>std::allocator</code>, so deriving your own allocator types from
+<code>std::allocator</code> is simpler and doesn't require the derived
+allocator to provide its own <code>rebind</code>.
For compatibility with previous C++ standards, the member should still be
provided. The converting constructor is still required even in C++20.
</p>
prev parent reply other threads:[~2023-03-03 22:47 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-02 20:56 Jonathan Wakely
2023-03-03 22:47 ` Gerald Pfeifer [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d412cda1-2a43-cc3e-fc44-bcdd3fa82b2e@pfeifer.com \
--to=gerald@pfeifer.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=jwakely@redhat.com \
--cc=libstdc++@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).