Здравствуйте, c-smile, Вы писали:
CS>Здравствуйте, sergey_shandar, Вы писали:
_>>Здравствуйте, c-smile, Вы писали:
CS>>>Вот slices в стиле D arrays.
_>>Можно использовать iterator_range? Например
_>>boost::sub_range,
_>>boost::iterator_range.
CS>...
Все таки, что по поводу boost::range и подобных? Я не утверждаю что нужно использовать boost::range. Но, инетересно было бы сравнить.
_>> template<std::size_t Size>
_>> slice(const T (&X)[Size]): start(X), length(Size) {}[/b]
CS>не пойдет на. eVC4 и VC6
Жаль. На Digital Mars C тоже не пошло. Ну ниче. Для кривых компиляторов можно попробовать так:
template<std::size_t Size, class T>
slice<T> make_slice(const T *X) { return slice<T>(X, Size); }
#define MAKE_SLICE(D) make_slice<sizeof(D) / sizeof(*D)>(D)