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-----