On 10 December 2015 at 20:12, Emil Dotchevski
On Thu, Dec 10, 2015 at 8:10 AM, Sam Kellett
wrote: what namespace is your comma operator in? it could be placed in an extra namespace which users can explicitly pull in if they prefer the super compact (albeit controversial) syntax and then anybody else could stick with a normal free function (like my swizzle(v, xy) above) which would be in the normal qvm namespace
Yes, all QVM names are safely defined in namespaces.
It's usually fine to bring the entire qvm namespace into whatever namespace you want, though this includes both types and operations and it is possible to get ambiguities if you have another *type* by the same name, e.g. mat or vec.
If that is a problem, you can bring in just boost::qvm::sfinae, which contains only operations. This should never lead to any ambiguities or clashes.
well yes, but i mean the comma operator can go in an extra namespace so that by default it is not included with the others and if somebody wants to swizzle that way instead of using a free function that an explicitly 'using namespace boost::qvm::swizzle' to bring the comma operator into scope.