Sequoia
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
MoveOnlyAllocationCheckersDetails.hpp File Reference

Implementation details specific to allocation checks for move-only types. More...

#include "sequoia/TestFramework/AllocationCheckersDetails.hpp"
#include "sequoia/TestFramework/MoveOnlyCheckersDetails.hpp"
#include <optional>

Go to the source code of this file.

Classes

struct  sequoia::testing::impl::move_only_allocation_actions< T >
 

Namespaces

namespace  sequoia::testing::impl
 Condition for applying a container check.
 

Functions

template<test_mode Mode, class Actions , moveonly T, class U , alloc_getter< T >... Getters>
requires checkable_against_for_semantics<Mode, T, U>
bool sequoia::testing::impl::check_swap (test_logger< Mode > &logger, const Actions &actions, T &&x, T &&y, const U &xEquivalent, const U &yEquivalent, const dual_allocation_checker< T, Getters > &... checkers)
 
template<test_mode Mode, container_tag tag, moveonly T, class U , alloc_getter< T >... Getters>
requires checkable_against_for_semantics<Mode, T, U>
std::optional< T > sequoia::testing::impl::check_para_constructor_allocations (test_logger< Mode > &logger, container_tag_constant< tag >, T &&z, const U &zEquivalent, const allocation_info< T, Getters > &... info)
 
template<test_mode Mode, moveonly T, class U , alloc_getter< T >... Getters>
requires checkable_against_for_semantics<Mode, T, U>
std::pair< std::optional< T >, std::optional< T > > sequoia::testing::impl::check_para_constructor_allocations (test_logger< Mode > &logger, T &&x, T &&y, const U &xEquivalent, const U &yEquivalent, const allocation_info< T, Getters > &... info)
 
template<test_mode Mode, class Actions , moveonly T, class U , std::invocable< T & > Mutator, alloc_getter< T >... Getters>
requires checkable_against_for_semantics<Mode, T, U> && (sizeof...(Getters) > 0)
void sequoia::testing::impl::check_semantics (std::string description, test_logger< Mode > &logger, const Actions &actions, T &&x, T &&y, const U &xEquivalent, const U &yEquivalent, optional_ref< const U > movedFromPostConstruction, optional_ref< const U > movedFromPostAssignment, Mutator m, const allocation_info< T, Getters > &... info)
 
template<test_mode Mode, class Actions , moveonly T, invocable_r< T > xMaker, invocable_r< T > yMaker, std::invocable< T & > Mutator, alloc_getter< T >... Getters>
requires (sizeof...(Getters) > 0)
std::pair< T, T > sequoia::testing::impl::check_semantics (std::string description, test_logger< Mode > &logger, const Actions &actions, xMaker xFn, yMaker yFn, optional_ref< const T > movedFromPostConstruction, optional_ref< const T > movedFromPostAssignment, Mutator m, const allocation_info< T, Getters > &... info)
 
template<test_mode Mode, class Actions , moveonly T, class U , std::invocable< T & > Mutator, alloc_getter< T >... Getters>
requires checkable_against_for_semantics<Mode, T, U> && (sizeof...(Getters) > 0)
void sequoia::testing::impl::check_semantics (test_logger< Mode > &logger, const Actions &actions, T &&x, T &&y, const U &xEquivalent, const U &yEquivalent, optional_ref< const U > movedFromPostConstruction, optional_ref< const U > movedFromPostAssignment, Mutator m, std::tuple< dual_allocation_checker< T, Getters >... > checkers)
 Unpacks the tuple and feeds to the overload of check_semantics defined in MoveOnlyCheckersDetails.hpp.
 

Detailed Description

Implementation details specific to allocation checks for move-only types.