Loading...
Searching...
No Matches
constructor.h
Go to the documentation of this file.
1#ifndef _BBM_CONSTRUCTOR_CONCEPT_H_
2#define _BBM_CONSTRUCTOR_CONCEPT_H_
3
4#include "core/args.h"
5
6/************************************************************************/
7/*! \file constructor.h
8
9 \brief bbm constructor concept
10*************************************************************************/
11
12namespace bbm {
13 namespace concepts {
14
15 /********************************************************************/
16 /*! \brief constructor concept
17
18 A bbm constructor requires:
19 + typename constructor_args_t that is an bbm::args
20 + the object is constructivle from an constructor_args_t
21 *********************************************************************/
22 template<typename OBJ>
23 concept constructor = requires
24 {
25 requires bbm::is_args_v< typename std::decay_t<OBJ>::constructor_args_t >;
26 requires std::is_constructible_v<OBJ, typename std::decay_t<OBJ>::constructor_args_t>;
27 };
28
29 } // end concepts namespace
30} // end bbm namespace
31
32#endif /* _BBM_CONSTRUCTOR_CONCEPT_H_ */
Provides a more flexible argument passing to function and methods.
constructor concept
Definition: constructor.h:23
Definition: aggregatebsdf.h:29