// /*-------------------------------------------------------------------*\
// | Abstract Template : Fixed_Length_Bit_String_Shift_Left
// \*-------------------------------------------------------------------*/
#ifndef AT_FIXED_LENGTH_BIT_STRING_SHIFT_LEFT
#define AT_FIXED_LENGTH_BIT_STRING_SHIFT_LEFT 1
///------------------------------------------------------------------------
/// Global Context --------------------------------------------------------
///------------------------------------------------------------------------
#include "AT/Fixed_Length_Bit_String/Kernel.h"
///------------------------------------------------------------------------
/// Interface -------------------------------------------------------------
///------------------------------------------------------------------------
abstract_template <
Integer_constant String_Length
/*!
satisfies restriction
String_Length > 0
!*/
>
class Fixed_Length_Bit_String_Shift_Left :
extends
abstract_instance Fixed_Length_Bit_String_Kernel <String_Length>
{
public:
procedure Shift_Left (
preserves Integer bits_to_shift,
preserves Integer fill_value
) is_abstract;
/*!
requires
0 < bits_to_shift <= |self| and
0 <= fill_value < 2
ensures
there exists a, b, c: string of Integer
(#self = a * b and
self = b * c and
|a| = |c| = bits_to_shift and
for all z: BIT where (<z> is substring of c)
(z = fill_value)
!*/
};
#endif // AT_FIXED_LENGTH_BIT_STRING_SHIFT_LEFT
Last modified: Wed Aug 27 14:43:39 EDT 2008