1#ifndef _BBM_SAMPLELOSSFUNCTION_CONCEPT_H_
2#define _BBM_SAMPLELOSSFUNCTION_CONCEPT_H_
27 template<
typename SAMPLELOSS>
32 {
loss(std::declval<Vec3d_t<SAMPLELOSS>>(), std::declval<Vec3d_t<SAMPLELOSS>>(), std::declval<Spectrum_t<SAMPLELOSS>>(), std::declval<Spectrum_t<SAMPLELOSS>>()) } -> std::same_as<Value_t<SAMPLELOSS>>;
All BBM methods are defined to operate on a variety of value types and spectrum types....
config concept
Definition: config.h:31
has_config
Definition: config.h:53
loss concept
Definition: loss.h:29
Definition: samplelossfunction.h:28
#define BBM_CHECK_CONCEPT(CONCEPTNAME, CLASSNAME,...)
Check a class for a concept with bbm::concepts::archetypes in the namespace.
Definition: macro.h:35
Definition: aggregatebsdf.h:29
typename get_config< T >::Value Value_t
Definition: config.h:67
typename get_config< T >::Spectrum Spectrum_t
Definition: config.h:68
Definition: samplelossfunction.h:44
Value_t< Config > operator()(const Vec3d_t< Config > &, const Vec3d_t< Config > &, const Spectrum_t< Config > &, const Spectrum_t< Config > &) const
CONF Config
Definition: samplelossfunction.h:45
Additional basic helper concepts.