mirror of
https://gitlab.com/fbb-git/cppannotations
synced 2024-11-16 07:48:44 +01:00
removed sf advancedtemplates/concepts/examples/demo.cc
This commit is contained in:
parent
deb18b6a13
commit
8861ac28c7
1 changed files with 0 additions and 43 deletions
|
@ -1,43 +0,0 @@
|
|||
|
||||
template <typename Type>
|
||||
concept bool Constraint() // function concept
|
||||
{
|
||||
return
|
||||
requires(Type lhs, Type rhs)
|
||||
{
|
||||
{ lhs < rhs } -> bool; // multiple
|
||||
lhs + rhs; // constraints
|
||||
// typename Type::value_type;
|
||||
};
|
||||
}
|
||||
|
||||
template <typename Type>
|
||||
concept bool Constraint2 = // variable concept
|
||||
requires(Type lhs, Type rhs)
|
||||
{
|
||||
// { operator<(lhs, rhs) } -> bool; // both OK
|
||||
{ lhs < rhs } -> bool;
|
||||
|
||||
lhs + rhs;
|
||||
typename Type::value_type;
|
||||
};
|
||||
|
||||
|
||||
// template <typename Type> concept bool Constraint = true ;
|
||||
|
||||
struct Combi
|
||||
{
|
||||
typedef int value_type;
|
||||
};
|
||||
|
||||
bool operator<(Combi const &lhs, Combi const &rhs);
|
||||
Combi operator+(Combi const &lhs, Combi const &rhs);
|
||||
|
||||
|
||||
template <Constraint Type> // declares a multiply
|
||||
requires Constraint2<Type> void fun(); // constrained function template
|
||||
|
||||
int main()
|
||||
{
|
||||
fun<Combi>();
|
||||
}
|
Loading…
Reference in a new issue