
On Apr 12, 2007, at 12:16 AM, Mathias Gaunard wrote:
Thank you. This is awesome.
A version of GCC, and even precompiled binaries, with all those C++0x features is a good thing as it will allow early usage and spreading of those new features.
The "OSL5" regression tester for Boost CVS HEAD tests a version of GCC with all of those C++0x features *except* concepts, so we can start (conditionally) using these features in Boost libraries.
Could you give more info about the incompability between variadic templates and concepts though?
Don't write a constrained template (i.e., one with any concept requirements placed on it) that uses variadic templates, e.g., the following will probably crash: auto concept OutputStreamable<typename T> { std::ostream operator<<(std::ostream&, const T&); } void print() { } template<typename T, typename... Rest> requires OutputStreamable<T>, OutputStreamable<Rest>... void print(const T& x, const Rest&... rest) { print(x); print(rest...); } Take away the "requires" clause and it should be fine, because you would be using variadic templates separately from concepts. Cheers, Doug