Concept describing the primitive buffer/file interface used by tape I/O code.
More...
#include <bufferstate.h>
template<class T, class ElementType>
requires(T &buffer, const T &constBuffer, const char *fileName,
const char *mode, size_t position, size_t numOnTape) {
{ buffer.begin() } -> std::same_as<ElementType *>;
{ constBuffer.begin() } -> std::same_as<const ElementType *>;
{ buffer.file() } -> std::same_as<FILE *>;
{ constBuffer.file() } -> std::same_as<FILE *>;
{ constBuffer.position() } -> std::convertible_to<size_t>;
buffer.position(position);
{ constBuffer.numOnTape() } -> std::convertible_to<size_t>;
buffer.numOnTape(numOnTape);
buffer.openFile(fileName, mode);
buffer.closeFile();
}
Concept describing the primitive buffer/file interface used by tape I/O code.
Definition bufferstate.h:27
Concept describing the primitive buffer/file interface used by tape I/O code.
This is the contract that generic tape algorithms expect from a concrete buffer wrapper such as BufferState<T>. Higher-level Info adapters should select a buffer that satisfies this concept instead of re-expressing these requirements themselves.
- Template Parameters
-
| T | Buffer wrapper type. |
| ElementType | Element type stored in the buffer. |