50 lines
708 B
C++
50 lines
708 B
C++
|
// RUN: %clang_cc1 -fsyntax-only -std=c++11 %s -verify
|
||
|
|
||
|
namespace PR10457 {
|
||
|
|
||
|
class string
|
||
|
{
|
||
|
string(const char* str, unsigned);
|
||
|
|
||
|
public:
|
||
|
template <unsigned N>
|
||
|
string(const char (&str)[N])
|
||
|
: string(str) {} // expected-error{{constructor for 'string<6>' creates a delegation cycle}}
|
||
|
};
|
||
|
|
||
|
void f() {
|
||
|
string s("hello");
|
||
|
}
|
||
|
|
||
|
struct Foo {
|
||
|
Foo(int) { }
|
||
|
|
||
|
|
||
|
template <typename T>
|
||
|
Foo(T, int i) : Foo(i) { }
|
||
|
};
|
||
|
|
||
|
void test_Foo()
|
||
|
{
|
||
|
Foo f(1, 1);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
namespace PR12890 {
|
||
|
class Document
|
||
|
{
|
||
|
public:
|
||
|
Document() = default;
|
||
|
|
||
|
template <class T>
|
||
|
explicit
|
||
|
Document(T&& t) : Document()
|
||
|
{
|
||
|
}
|
||
|
};
|
||
|
void f()
|
||
|
{
|
||
|
Document d(1);
|
||
|
}
|
||
|
}
|