#include <boost/qvm/v_access.hpp>
#include <boost/qvm/sw.hpp>
namespace boost
{
namespace qvm
{
//*** Accessing vector elements, swizzling ***
template <int I>
-unspecified-return-type- A();
-unspecified-return-type- A0();
-unspecified-return-type- A1();
...
-unspecified-return-type- A9();
-unspecified-return-type- X();
-unspecified-return-type- Y();
-unspecified-return-type- Z();
-unspecified-return-type- W();
struct _x_;
struct _y_;
struct _z_;
struct _w_;
struct _0_;
struct _1_;
template <int I1,int I2,...int IN>
-unspecified-return-type- sw();
template <class A1,class A2,...class AN>
-unspecified-return-type- sw();
//2D view proxies:
-unspecified-return-type- XX();
-unspecified-return-type- XY();
-unspecified-return-type- XZ();
-unspecified-return-type- XW();
-unspecified-return-type- X0();
-unspecified-return-type- X1();
-unspecified-return-type- YX();
-unspecified-return-type- YY();
-unspecified-return-type- YZ();
-unspecified-return-type- YW();
-unspecified-return-type- Y0();
-unspecified-return-type- Y1();
-unspecified-return-type- ZX();
-unspecified-return-type- ZY();
-unspecified-return-type- ZZ();
-unspecified-return-type- ZW();
-unspecified-return-type- Z0();
-unspecified-return-type- Z1();
-unspecified-return-type- WX();
-unspecified-return-type- WY();
-unspecified-return-type- WZ();
-unspecified-return-type- WW();
-unspecified-return-type- W0();
-unspecified-return-type- W1();
//3D view proxies:
-unspecified-return-type- XXX();
...
-unspecified-return-type- XXW();
-unspecified-return-type- XX0();
-unspecified-return-type- XX1();
-unspecified-return-type- XYX();
...
-unspecified-return-type- XY1();
...
-unspecified-return-type- WW1();
//4D view proxies:
-unspecified-return-type- XXXX();
...
-unspecified-return-type- XXXW();
-unspecified-return-type- XXX0();
-unspecified-return-type- XXX1();
-unspecified-return-type- XXYX();
...
-unspecified-return-type- XXY1();
...
-unspecified-return-type- WWW1();
}
}