[gcc r16-8186] libstdc++: Micro-optimization for std::generator helper concept
Jonathan Wakely
redi@gcc.gnu.org
Fri Mar 20 09:41:36 GMT 2026
https://gcc.gnu.org/g:81a326d1ffe6471722cef209364c3c909a7f9282
commit r16-8186-g81a326d1ffe6471722cef209364c3c909a7f9282
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed Mar 18 22:24:24 2026 +0000
libstdc++: Micro-optimization for std::generator helper concept
The default_initializable concept is defined in terms of some builtins
which should be cheap to evaluate. Check that before instantiating the
allocator_traits class template.
libstdc++-v3/ChangeLog:
* include/std/generator (_Stateless_alloc): Swap order of
constraints.
Reviewed-by: Tomasz Kamiński <tkaminsk@redhat.com>
Reviewed-by: Arsen Arsenović <arsen@aarsen.me>
Diff:
---
libstdc++-v3/include/std/generator | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/libstdc++-v3/include/std/generator b/libstdc++-v3/include/std/generator
index 115bf943ae95..88651dd6f76a 100644
--- a/libstdc++-v3/include/std/generator
+++ b/libstdc++-v3/include/std/generator
@@ -423,8 +423,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
};
template<typename _All>
- concept _Stateless_alloc = (allocator_traits<_All>::is_always_equal::value
- && default_initializable<_All>);
+ concept _Stateless_alloc
+ = default_initializable<_All>
+ && allocator_traits<_All>::is_always_equal::value;
template<typename _Allocator>
class _Promise_alloc
More information about the Libstdc++-cvs
mailing list