gcc/libstdc++-v3
Jonathan Wakely e09366718a libstdc++: Reduce template instantiations in <regex>
This moves the last two template parameters of __regex_algo_impl to be
runtime function parameters instead, so that we don't need four
different instantiations for the possible ways to call it. Most of the
function (and what it instantiates) is the same in all cases, so making
them compile-time choices doesn't really have much benefit.

Use  'if constexpr' for conditions that check template parameters, so
that when we do depend on a compile-time condition we only instantiate
what we need to.

libstdc++-v3/ChangeLog:

	* include/bits/regex.h (__regex_algo_impl): Change __policy and
	__match_mode template parameters to be function parameters.
	(regex_match, regex_search): Pass policy and match mode as
	function arguments.
	* include/bits/regex.tcc (__regex_algo_impl): Change template
	parameters to function parameters.
	* include/bits/regex_compiler.h (_RegexTranslatorBase): Use
	'if constexpr' for conditions using template parameters.
	(_RegexTranslator): Likewise.
	* include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
	Likewise.
	* testsuite/util/testsuite_regex.h (regex_match_debug)
	(regex_search_debug): Move template arguments to function
	arguments.
2022-01-05 13:47:01 +00:00
..
config Update copyright years. 2022-01-03 10:42:10 +01:00
doc Update copyright years. 2022-01-03 10:42:10 +01:00
include libstdc++: Reduce template instantiations in <regex> 2022-01-05 13:47:01 +00:00
libsupc++ Update copyright years. 2022-01-03 10:42:10 +01:00
po Update copyright years. 2022-01-03 10:42:10 +01:00
python Update copyright years. 2022-01-03 10:42:10 +01:00
scripts Update copyright years. 2022-01-03 10:42:10 +01:00
src libstdc++: Improve std::regex_error::what() strings 2022-01-05 13:47:00 +00:00
testsuite libstdc++: Reduce template instantiations in <regex> 2022-01-05 13:47:01 +00:00
acinclude.m4 libstdc++: Fix definition of _GLIBCXX_NO_SLEEP config macro 2021-12-10 14:05:46 +00:00
aclocal.m4
ChangeLog Rotate ChangeLog files - step 2 - remove 2021 entries from ChangeLog files. 2022-01-03 10:23:34 +01:00
ChangeLog-1998
ChangeLog-1999
ChangeLog-2000
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-2016
ChangeLog-2017
ChangeLog-2018
ChangeLog-2019
ChangeLog-2020
ChangeLog-2021 Rotate ChangeLog files - part 1 - add ChangeLog-2021. 2022-01-03 10:18:16 +01:00
config.h.in libstdc++: Fix definition of _GLIBCXX_NO_SLEEP config macro 2021-12-10 14:05:46 +00:00
configure libstdc++: Fix definition of _GLIBCXX_NO_SLEEP config macro 2021-12-10 14:05:46 +00:00
configure.ac
configure.host
crossconfig.m4
fragment.am
linkage.m4
Makefile.am Update copyright years. 2022-01-03 10:42:10 +01:00
Makefile.in
README

file: libstdc++-v3/README

New users may wish to point their web browsers to the file
index.html in the 'doc/html' subdirectory.  It contains brief
building instructions and notes on how to configure the library in
interesting ways.