Similarly to (but not exactly the same as) the template ctor in bug 36871,
gcc 4.3.0 trips up on class with a throwing vararg ctor (regardless of the
number of arguments):
$ cat u.cpp && g++ u.cpp -std=c++0x && ./a.out
#include <cassert>
#include <type_traits>
struct S {
S (const S&) throw ();
S (...) throw (int);
};
int main ()
{
assert (std::has_nothrow_copy_constructor<S>::value);
assert (__has_nothrow_copy (S));
}
a.out: u.cpp:12: int main(): Assertion
`std::has_nothrow_copy_constructor<S>::value' failed.
Aborted
--
Summary: __has_nothrow_copy(T) false for T with a throwing vararg
ctor
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sebor at roguewave dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36872