Skip to content

Stop using the now deprecated std::is_trivial.#3819

Closed
Romain-Geissler-1A wants to merge 1 commit intoaws:mainfrom
Romain-Geissler-1A:remove-is_trivial
Closed

Stop using the now deprecated std::is_trivial.#3819
Romain-Geissler-1A wants to merge 1 commit intoaws:mainfrom
Romain-Geissler-1A:remove-is_trivial

Conversation

@Romain-Geissler-1A
Copy link
Copy Markdown
Contributor

Issue #, if available:

Description of changes:

std::is_trivial is deprecated in C++26. Using gcc 15 and C++26 yields this warning:

/data/mwrep/res/mdw/SIOTF/internal/osp/aws_sdk/25-0-0-1/include/aws/core/utils/memory/AWSMemory.h: In function 'Aws::UniquePtr<T> Aws::MakeUnique(const char*, ArgTypes&& ...)': /data/mwrep/res/mdw/SIOTF/internal/osp/aws_sdk/25-0-0-1/include/aws/core/utils/memory/AWSMemory.h:307:56: error: 'template<class _Tp> struct std::is_trivial' is deprecated: use 'is_trivially_default_constructible && is_triviall y_copyable' instead [-Werror=deprecated-declarations]
  307 |         static_assert(!std::is_array<T>::value || std::is_trivial<T>::value,
      |                                                        ^~~~~~~~~~

So do as gcc suggests, and replace it by a combination of is_trivially_default_constructible and is_trivially_copyable.

Check all that applies:

  • Did a review by yourself.
  • Added proper tests to cover this PR. (If tests are not applicable, explain.)
  • Checked if this PR is a breaking (APIs have been changed) change.
  • Checked if this PR will not introduce cross-platform inconsistent behavior.
  • Checked if this PR would require a ReadMe/Wiki update.

Check which platforms you have built SDK on to verify the correctness of this PR.

  • Linux
  • Windows
  • Android
  • MacOS
  • IOS
  • Other Platforms

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

std::is_trivial is deprecated in C++26. Using gcc 15 and C++26 yields
this warning:

/data/mwrep/res/mdw/SIOTF/internal/osp/aws_sdk/25-0-0-1/include/aws/core/utils/memory/AWSMemory.h: In function 'Aws::UniquePtr<T> Aws::MakeUnique(const char*, ArgTypes&& ...)':
/data/mwrep/res/mdw/SIOTF/internal/osp/aws_sdk/25-0-0-1/include/aws/core/utils/memory/AWSMemory.h:307:56: error: 'template<class _Tp> struct std::is_trivial' is deprecated: use 'is_trivially_default_constructible && is_triviall
y_copyable' instead [-Werror=deprecated-declarations]
  307 |         static_assert(!std::is_array<T>::value || std::is_trivial<T>::value,
      |                                                        ^~~~~~~~~~

So do as gcc suggests, and replace it by a combination of
is_trivially_default_constructible and is_trivially_copyable.
@sbiscigl
Copy link
Copy Markdown
Collaborator

sbiscigl commented May 7, 2026

yep, seems like the right thing to do, for logistical reasons i have to pull your change onto a branch on the main repo to run CI on it. will be merged in this PR #3820

Thanks for contributing!

@sbiscigl
Copy link
Copy Markdown
Collaborator

sbiscigl commented May 7, 2026

change has been merged, give a shout if you have any questions or find anything else!

@sbiscigl sbiscigl closed this May 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants