
On 02/15/2005 08:08 AM, Larry Evans wrote: [snip]
Yes, it is a non-member function. No, it does not mutate s. It does return another set. It is purely functional (no side- effects). Then it's different from tuple<T1,...,Tn> since any mutating operation Ti::op on an instance of Ti can be performed on the corresponding member variable in an instance of tuple<T1,...,Tn>?
See boost-sandbox.sourceforge.net/vault/cppljevans/field_visitor_tests /field_sets.hpp for an example of what I had thought you were talking about here:
fusion::vector, fusion::list, fusion::set and fusion::map all have data. These are different incarnations of the tuple with different characteristics.
when you said fusion::set had data. Having data implies, at least to me, that the data can be modified.