Skip to content

Conversation

Quuxplusone
Copy link

This PR definitely isn't ready for prime time, but I figured I might as well exploit Cunningham's Law here.

The idea is that when the compiler supports __cpp_impl_trivially_relocatable (P1144's proposed feature-test macro), then we should define -DBOOST_CONTAINER_ATTRIBUTE_TRIVIALLY_RELOCATABLE_IF(x)=[[trivially_relocatable(x)]]. (And/or set it to a vendor-specific attribute if-and-when anyone supports a vendor-specific attribute; no mainstream compiler does, yet.)

The big problem with this patch as it stands right now is that I have no idea where these macros are configured. We want to do the same thing that BOOST_CONTAINER_ATTRIBUTE_NODISCARD does; but that's not configured anywhere in this repo, either.

I see that Boost.Container is just inheriting all its type-traits from Boost.Move, so probably dtl::is_trivially_relocatable belongs in Boost.Move, not here?

Fixes #258.

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.

Feature request: Make static_vector "trivially relocatable" when possible
1 participant