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