51 template <typename T2>
52 requires(std::is_const_v<T2> && !std::is_const_v<
T>)
56 template <typename T2>
57 requires(!(std::is_const_v<T2> && !std::is_const_v<
T>) &&
58 !std::is_same_v<std::remove_const_t<
T>, std::remove_const_t<T2>>)
68 int croppedWidth_,
int croppedHeight_);
72 requires(!std::is_const_v<T2> && std::is_const_v<T> &&
73 std::is_same_v<std::remove_const_t<T>, std::remove_const_t<T2>>)
92 int offsetRows_,
int croppedWidth_,
110 invariant((croppedWidth == 0) == (croppedHeight == 0));
115 int offsetCols_,
int offsetRows_,
118 : base(base_), offsetCols(offsetCols_), offsetRows(offsetRows_),
119 croppedWidth(croppedWidth_), croppedHeight(croppedHeight_) {
120 establishClassInvariants();
124inline CroppedArray1DRef<T>
138 return (
operator[](row))(col);
CroppedArray1DRef< T > getCrop(int offset, int numElts) const
int RAWSPEED_READONLY height() const
void establishClassInvariants() const noexcept
int RAWSPEED_READONLY width() const
CroppedArray1DRef< T > operator[](int row) const
const Array2DRef< T > base
T & operator()(int row, int col) const
Array2DRef< T > getAsArray2DRef() const
void establishClassInvariants() const noexcept
CroppedArray2DRef(CroppedArray2DRef< T2 > RHS)
CroppedArray2DRef(Array2DRef< T > base_, int offsetCols_, int offsetRows_, int croppedWidth_, int croppedHeight_)
CroppedArray2DRef()=delete
std::remove_cv_t< value_type > cvless_value_type
__attribute__((noinline)) __attribute__((visibility("default"))) JPEGStuffedByteStreamGenerator
CroppedArray2DRef(Array2DRef< T > base_, int offsetCols_, int offsetRows_, int croppedWidth_, int croppedHeight_) -> CroppedArray2DRef< typename Array2DRef< T >::value_type >