require '_h2ph_pre.ph';

no warnings 'redefine';

unless(defined(&__SLICE_ARRAY__)) {
    eval 'sub __SLICE_ARRAY__ () {1;}' unless defined(&__SLICE_ARRAY__);
    undef(&_DEFINE_VALARRAY_OPERATOR) if defined(&_DEFINE_VALARRAY_OPERATOR);
    eval 'sub _DEFINE_VALARRAY_OPERATOR {
        my($op, $name) = @_;
	    eval q( &template< &typename  &_T>  &inline  &void  &slice_array< &_T>:: &operator$op= ( &const  &valarray< &_T>&  &__v)  &const {  &_Array_augmented_$name ( &_M_array,  &_M_sz,  &_M_stride,  &_Array< &_T> ( &__v));}  &template< &typename  &_T>  &template< &class  &_Dom>  &inline  &void  &slice_array< &_T>:: &operator$op= ( &const  &_Expr< &_Dom, &_T>&  &__e)  &const {  &_Array_augmented_$name ( &_M_array,  &_M_stride,  &__e,  &_M_sz); });
    }' unless defined(&_DEFINE_VALARRAY_OPERATOR);
    undef(&_DEFINE_VALARRAY_OPERATOR) if defined(&_DEFINE_VALARRAY_OPERATOR);
}
1;
