// /*-------------------------------------------------------------------*\
// | Concrete Template : Static_Array_Exchange_At_C
// \*-------------------------------------------------------------------*/
#ifndef CT_STATIC_ARRAY_EXCHANGE_AT_C
#define CT_STATIC_ARRAY_EXCHANGE_AT_C 1
///------------------------------------------------------------------------
/// Global Context --------------------------------------------------------
///------------------------------------------------------------------------
/*!
#include "AT/Static_Array/Exchange_At.h"
#include "AT/Static_Array/Kernel.h"
!*/
///------------------------------------------------------------------------
/// Interface -------------------------------------------------------------
///------------------------------------------------------------------------
concrete_template <
concrete_instance class Item,
Integer_constant lower,
Integer_constant upper,
/*!
satisfies restriction
lower <= upper
!*/
concrete_instance class Static_Array_Exchange_At_Base
/*!
implements
abstract_instance Static_Array_Exchange_At <Item,
lower, upper>,
checks
abstract_instance Static_Array_Kernel <Item,
lower, upper>
!*/
>
class Static_Array_Exchange_At_C :
checks
concrete_instance Static_Array_Exchange_At_Base
{
public:
procedure_body Exchange_At (
preserves Integer i,
preserves Integer j
)
{
assert (lower <= i,
"lower <= i");
assert (i <= upper,
"i <= upper");
assert (lower <= j,
"lower <= j");
assert (j <= upper,
"j <= upper");
self.Static_Array_Exchange_At_Base::Exchange_At (i, j);
}
};
#endif // CT_STATIC_ARRAY_EXCHANGE_AT_C
Last modified: Wed Nov 04 15:10:09 EST 2009