Sequoia
Loading...
Searching...
No Matches
Classes | Functions | Variables
Advice.hpp File Reference

Utilities for the advice framework, which provides hints for certain failures. More...

#include "sequoia/Core/Meta/Concepts.hpp"
#include "sequoia/Core/Meta/TypeTraits.hpp"
#include "sequoia/TestFramework/Output.hpp"

Go to the source code of this file.

Classes

struct  sequoia::testing::advisor_invoke_type< R(Advisor::*)(T, T)>
 
struct  sequoia::testing::advisor_invoke_type< R(Advisor::*)(T, T) const >
 
struct  sequoia::testing::advisor_invoke_type< R(Advisor::*)(T, T) const noexcept >
 
struct  sequoia::testing::advisor_invoke_type< R(Advisor::*)(T, T) noexcept >
 
struct  sequoia::testing::advisor_analyser< Advisor, T >
 meta utility for determining whether a particular Advisor should be used for a given type More...
 
struct  sequoia::testing::advisor_analyser< Advisor, T >
 
struct  sequoia::testing::null_advisor
 Represents the absence of advice. More...
 
class  sequoia::testing::tutor< Advisor >
 class template used to wrap function objects which proffer advice. More...
 
class  sequoia::testing::tutor< null_advisor >
 
struct  sequoia::testing::ends_with_tutor< U >
 
struct  sequoia::testing::ends_with_tutor< U... >
 
class  sequoia::testing::advice_data
 Helper for generating advice strings. More...
 

Functions

std::string & sequoia::testing::append_advice (std::string &message, const advice_data &adviceData)
 

Variables

template<class Advisor , class T >
constexpr bool sequoia::testing::use_advisor_v {advisor_analyser<Advisor, T>::utilize}
 
template<class Tutor >
constexpr bool sequoia::testing::is_teacher_v
 
template<class... U>
constexpr bool sequoia::testing::ends_with_tutor_v {ends_with_tutor<U...>::value}
 

Detailed Description

Utilities for the advice framework, which provides hints for certain failures.

When a check fails, there may be some instances where the nature of the failure deserves comment. Indeed, such comments may provide a useful clue as to the origin of the failure, particularly when it is subtle. The advice framework facilitates this, allowing value-dependent comments to be generated in the instance of failure. This is achieved by passing an instance of tutor to the appropriate check call.

Variable Documentation

◆ is_teacher_v

template<class Tutor >
constexpr bool sequoia::testing::is_teacher_v
inlineconstexpr
Initial value:
{
requires { typename std::remove_cvref_t<Tutor>::sequoia_advisor_type; }
}