16 { value.data() } -> std::same_as<char*>;
17 {
static_cast<const T&
>(value).data() } -> std::same_as<const char*>;
18 {
static_cast<const T&
>(value).size() } -> std::same_as<size_t>;
19 { value.resize(
size_t()) };
20 { value[size_t()] } -> std::same_as<char&>;
59 const
char*
data() const;
63 void resize(
size_t newSize);
65 char& operator [](
size_t index);
77 ContainerWrapper::ContainerWrapper(T& value) :
80 [&value]() mutable -> char*
84 [&value]()
mutable ->
const char*
86 return const_cast<const T&
>(value).data();
88 [&value]()
mutable ->
size_t
92 [&value](
size_t newSize)
mutable ->
void
94 value.resize(newSize);
96 [&value](
size_t index)
mutable ->
char&
Wrap Container concept instance.
Definition ContainerWrapper.h:27
ContainerWrapper(const std::function< char *()> &dataImplementation, const std::function< const char *()> &constDataImplementation, const std::function< size_t()> &sizeImplementation, const std::function< void(size_t)> &resizeImplementation, const std::function< char &(size_t)> &operatorImplementation)
Definition ContainerWrapper.cpp:8
std::function< void(size_t)> resizeImplementation
Definition ContainerWrapper.h:32
char * data()
Definition ContainerWrapper.cpp:24
std::function< size_t()> sizeImplementation
Definition ContainerWrapper.h:31
std::function< const char *()> constDataImplementation
Definition ContainerWrapper.h:30
std::function< char &(size_t)> operatorImplementation
Definition ContainerWrapper.h:33
ContainerWrapper(const ContainerWrapper &)=delete
ContainerWrapper(ContainerWrapper &&) noexcept=default
std::function< char *()> dataImplementation
Definition ContainerWrapper.h:29
size_t size() const
Definition ContainerWrapper.cpp:34
void resize(size_t newSize)
Definition ContainerWrapper.cpp:39
Requirements for in/out socket operations.
Definition ContainerWrapper.h:14
Definition ContainerWrapper.cpp:4