50 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -std=c++11 %s -verify 2 3namespace PR10457 {4 5 class string6 {7 string(const char* str, unsigned);8 9 public:10 template <unsigned N>11 string(const char (&str)[N])12 : string(str) {} // expected-error{{constructor for 'string<6U>' creates a delegation cycle}}13 };14 15 void f() {16 string s("hello");17 }18 19 struct Foo {20 Foo(int) { }21 22 23 template <typename T>24 Foo(T, int i) : Foo(i) { }25};26 27 void test_Foo()28 {29 Foo f(1, 1);30 }31}32 33namespace PR12890 {34 class Document35 {36 public:37 Document() = default;38 39 template <class T>40 explicit41 Document(T&& t) : Document()42 {43 }44 };45 void f()46 {47 Document d(1);48 }49}50