Boost QVM

Accessing Vector Elements and Swizzling

#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();
    }
}

See also: Boost QVM | Synopsis