Bonjour,
Je veux écrire une fonction de ce genre


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
constexpr int foo(const int bar)
{
   static_assert(bar<32, "Use a lower number please");
   return something_const;
}

Mais ça ne compile pas car
error: non-constant condition for static assertion

J'ai trouvé sur le net cette solution


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
template<int bar>
constexpr int foo()
{
   static_assert(bar<32, "Use a lower number please");
   return something_const;
}
Je crois avoir compris l'idée générale, néanmoins je ne comprends pas cette écriture.
J'avoue que les templates, j'ai toujours eu du mal avec l'écriture.
Peut-on m'expliciter la syntaxe ?