Ш>>>Ну и, конечно, надо вызывать вот так
Ш>>>ca[53].sum( {(int *)&ca,DimOf(ca)} );
σ>>UB даже при `sizeof(Count) == sizeof (int)`.
Ш>Это почему? Каст (int *)&ca полностью легален.
Ой-вей, `ca` ведь ещё и массив. Тут UB будет из-за [expr.add]/6.
Из-за [expr.add]/4 UB будет при использовании `&ca->val`.