New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change base of tuple #151

Merged
merged 5 commits into from Oct 12, 2017

Conversation

Projects
None yet
2 participants
@Flast
Collaborator

Flast commented Oct 12, 2017

As discussed on [1], change base class of fusion::tuple to vector_detail::vector_data to improve compile time performance and conversion stability.

Tested:

  • GCC 7.2.1 20170829
  • Clang 4.0.1

[1] [Spirit-general] [fusion] Proposal for deprecating fusion.tuple.

Flast added some commits Oct 3, 2017

@Flast Flast merged commit 1bce525 into develop Oct 12, 2017

@Flast Flast deleted the change-base-of-tuple branch Oct 13, 2017

@@ -306,13 +295,11 @@ namespace boost { namespace fusion
template <
typename Sequence
, typename Sequence_ = typename remove_reference<Sequence>::type
, typename = typename boost::enable_if_c<(
!is_base_of<vector, Sequence_>::value &&

This comment has been minimized.

@vtnerd

vtnerd Oct 13, 2017

Contributor

This check was added to speedup the compile performance of copies/moves. This constructor is now used for copies/moves, and has to instantiate an at_c<...>(...) for each element instead of using the compiler generated default. I didn't add a comment or store this information anywhere, so maybe am I mistaken.

I will try to investigate this again and update with a comment + PR. I commented in this PR in case I forget to do it, someone else might want to know.

@vtnerd

vtnerd Oct 13, 2017

Contributor

This check was added to speedup the compile performance of copies/moves. This constructor is now used for copies/moves, and has to instantiate an at_c<...>(...) for each element instead of using the compiler generated default. I didn't add a comment or store this information anywhere, so maybe am I mistaken.

I will try to investigate this again and update with a comment + PR. I commented in this PR in case I forget to do it, someone else might want to know.

This comment has been minimized.

@Flast

Flast Oct 13, 2017

Collaborator

If so, (perhaps) using is_same is better than is_base_of.

@Flast

Flast Oct 13, 2017

Collaborator

If so, (perhaps) using is_same is better than is_base_of.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment