せっかくラップしたのにoperator[]でチェックはしないの?
あとはマクロで普通の配列に置き換えるコード書けばおk