$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Douglas Gregor (doug.gregor_at_[hidden])
Date: 2007-04-12 10:48:58
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