#define FOO(X) \ template \ inline X<_blk_sz, _run_type, __pos_type> operator - ( \ const X<_blk_sz, _run_type, __pos_type> & a, \ typename X<_blk_sz, _run_type, __pos_type>::_pos_type off) \ { \ return X<_blk_sz, _run_type, __pos_type>(a.array, a.pos - off); \ } \ template \ inline X<_blk_sz, _run_type, __pos_type> & operator -= ( \ X < _blk_sz, _run_type, __pos_type > & a, \ typename X<_blk_sz, _run_type, __pos_type>::_pos_type off) \ { \ a.pos -= off; \ return a; \ }