Re: [fusion] Proposal for deprecating fusion.tuple.

Kohei Takahashi <[email protected]>
Newsgroups gmane.comp.parsers.spirit.general
Message-ID <[email protected]>
Hi Lee,

> How does `fusion::tuple` make `fusion::vector` implementation more
> complex? Are you referring to the C++03 or C++11 version?
C++11 is.
`fusion::vector` constructors have complex SFINAE expression and helper
functions in order to sieve its argument category: same type, other
convertible sequence, nested, ... That is reason why I did tag
dispatching in `fusion::detail::vector_data`.

I'm still debating about C++03 impl.

> For C++11 `fusion::tuple` I noticed that if the assignment from fusion
> sequences was removed (its constructor currently does not allow
> conversion from sequences and `std::tuple` has no such requirement),
> then the headers automatically included could be reduced. So
> `fusion::tuple` _could_ be a faster compiling sequence for when the
> conversion properties of `fusion::vector` was not needed.
Good point. Implicit conversion is one of cause why I proposed.  Since
`fusion::tuple` uses `fusion::vector`, if this goes on, it can't be
faster than `fusion::vector`. OK, re-implement `fusion::tuple` without
any other sequence? Perhaps it has no (or few) difference between
`fusion::vector` about performance.

However, no conversion performing guarantee is safer and meaningful
option for some user.

> Of course,
> since most have a good implementation of `std::tuple` perhaps this
> unnecessary? I would like to point out that recent tweaks to
> `fusion::vector` have [improved performance over libstdc++ `std::tuple`
> in construction][0][1].
Interesting. I'll try to benchmark simpler impl.

> Anyway, the bigger issue with deprecation will be on users of Boost.
> Hopefully the fix would be easy - just change to another sequence type.
> I'm not aware of an situations where this is _not true_ (i.e. where
> deprecation would cause major code re-write for Boost users).
Yes, I think so too. I'll post this proposal to devel/users ML and ask
who uses `fusion::tuple` in production code.

I my mind, just announce in next (or next to the next) release, hence no
code is changed. After 2 or more release passed, break the code
(removing, re-implementing, or aliasing).

Thanks,
Kohei

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

_______________________________________________
Spirit-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spirit-general
signature.asc (application/pgp-signature, 854 B)
-----BEGIN PGP SIGNATURE-----

iQJDBAEBCAAtFiEEo3Cz2WL17kOFGHY9YbI/E9Gn/OgFAlnO8gsPHGZsYXN0QGZs
YXN0LmpwAAoJEGGyPxPRp/zodJoQAKYdZxRumIahK0P1W7GP1zF2bZk6/HdjUSZG
aqyl7X/WmDyQnfEYU5XUi4Lshi0ZE0WI6JU/GZNcIcPEbVPS41js61zBIWB9b6sF
TZAvGpbIw4ayAeMOdeZeeE5wevMvcpbYbYkJb3qoOg0+qE4n3mL182LroJsytGtP
3PBojcjraLrFAbPoV2L5JVNOoqRfO+XPUN3Vm9RExoDwtmgH4Bb8AHoDiw5UaK1A
mXZs/izrPiQoPtpuLUAMkYuKHdmjv66/a7gY7kszVQfQlxIEoeMa4kpak1fZDJsK
xZ+Ng92QfwRUJkVE+X5r8bJ5j1CgLZPhKXmu+waMj4x9EZJkKhdamRT8aVWscENH
7BVafbOeskgSdSmhQzVqEcNcgQPen7EZS/YF0zblHwfe8Jc1PotjNsZ+G/fs+f/I
IM5N/0RnTBpYUqmPm1Rb0/OaxbF4BmXLPBRKbj6RIGN0g1v0FYH9XAYhe08QXVuq
9kzRgu8xsAN/zM9wPncA09VUz9rs8zcQGcDeDWuWW1ZMgdp0POoWHjkVAHf8a2qK
EEsWcebq9sRWLkEIF0DQSKAXqbkbAVOijxbzOI0pD8r91brWp370OCCb86CAv0gY
5TFir10RIXRYRbEunHSpCnfzPPIBD+bimVpzW36aiP55ZiAm3d/f6aB4Q1/1gMdt
ujXrzbp/
=FBgz
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.