ADOL-C: Automatic Differentiation in C/C++ 2.7.3
Loading...
Searching...
No Matches
ADOLC::detail::BufferStateType Concept Reference

Concept describing the primitive buffer/file interface used by tape I/O code. More...

#include <bufferstate.h>

Concept definition

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

Detailed Description

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
TBuffer wrapper type.
ElementTypeElement type stored in the buffer.