I presented that at C++Now, so I hope so :) It lets me write: template<typename T> requires Input_iterator<T> // no parens! void f(T x);
Walter Brown also suggested this usage in his object alias paper. In concepts lite, a concept is essentially an expression. Thus far, we've packaged those expressions in constexpr functions (using "concept" as a declaration specifier to impose additional restrictions). Variable templates fall easily into this same set of restrictions. Plus, no overloading. Andrew On Thu, May 30, 2013 at 3:34 PM, Jason Merrill <ja...@redhat.com> wrote: > On 05/30/2013 03:17 PM, Andrew Sutton wrote: >>> >>> | - /* 1 spare bit */ >>> | + unsigned concept_p : 1; /* var or fn */ >>> | + /* 0 spare bit */ >>> | }; >>> >>> Hmm I don't understand the comment "var or fn". >>> If it is declared a concept, how can it it be a var? >> >> >> Copied from the other bits in the class. I think it means it applies >> to either variables or functions. I left it that way in anticipation >> of template variables. > > > Can template variables be concepts? > > Jason > -- Andrew Sutton andrew.n.sut...@gmail.com