Loading...
Searching...
No Matches
include
concepts
loss_ptr.h
Go to the documentation of this file.
1
#ifndef _BBM_LOSS_PTR_CONCEPT_H_
2
#define _BBM_LOSS_PTR_CONCEPT_H_
3
4
#include "
concepts/loss.h
"
5
#include "
concepts/ptr_wrapper.h
"
6
7
/************************************************************************/
8
/*! \file loss_ptr.h
9
\brief loss_ptr contract
10
*************************************************************************/
11
12
namespace
bbm
{
13
namespace
concepts {
14
15
/********************************************************************/
16
/*! \brief loss_ptr concept
17
18
A loss_ptr wraps a shared_ptr around a loss_base object. It provides
19
the following guarantees:
20
+ concepts::loss
21
+ concepts::ptr_wrapper
22
*********************************************************************/
23
template
<
typename
T>
24
concept
loss_ptr
=
concepts::loss<T>
&&
concepts::ptr_wrapper<T, loss_base<typename std::decay_t<T>::Config
>>;
25
26
}
// end concepts namespace
27
}
// end bbm namespace
28
29
#endif
/* _BBM_LOSS_PTR_CONCEPT_H_ */
bbm::concepts::loss_ptr
loss_ptr concept
Definition:
loss_ptr.h:24
bbm::concepts::loss
loss concept
Definition:
loss.h:29
bbm::concepts::ptr_wrapper
ptr_wrapper concept
Definition:
ptr_wrapper.h:23
loss.h
loss contract: virtual interface wrapper around lossfunctions
bbm
Definition:
aggregatebsdf.h:29
ptr_wrapper.h
A shared_ptr wrapper.