Fix missing tuple_size (#1407)

* Print test names at test time (#1343)

* Fix operator| conflict with std::ranges (#1395)

* Fix missing tuple_size

In case of certain clang versions, a wrong combination of activated
and deactivated template forward declarations and specializations
were provided.

This led to redefinition errors and specialization errors.

Now aligning those combinations, and providing definitions from
<utility> from std in the STL using case.

---------

Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
This commit is contained in:
Roland Reichwein 2026-04-28 11:03:25 +02:00 committed by GitHub
parent 5ccbc6fbff
commit fe7b2da10c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -35,6 +35,7 @@ SOFTWARE.
#if ETL_USING_STL
#include <tuple>
#include <utility>
#endif
#include "functional.h"
@ -1179,7 +1180,9 @@ namespace etl
namespace std
{
#if ETL_NOT_USING_STL && !((defined(ETL_DEVELOPMENT_OS_APPLE) || (ETL_COMPILER_FULL_VERSION >= 190000)) && defined(ETL_COMPILER_CLANG))
#if ETL_NOT_USING_STL \
&& !((defined(ETL_DEVELOPMENT_OS_APPLE) || (ETL_COMPILER_FULL_VERSION >= 190000) && (ETL_COMPILER_FULL_VERSION < 220000)) \
&& defined(ETL_COMPILER_CLANG))
template <typename T>
struct tuple_size;