📄 rv4n.c
字号:
// I, Howard Hinnant, hereby place this code in the public domain.// Test overlaod resolution among referece types// { dg-do compile }// { dg-options "-std=c++0x" }template <bool> struct sa;template <> struct sa<true> {};struct one {char x[1];};struct two {char x[2];};struct three {char x[3];};struct four {char x[4];};struct five {char x[5];};struct six {char x[6];};struct seven {char x[7];};struct eight {char x[8];};struct A{ A(); A(const volatile A&&);}; A source();const A c_source(); volatile A v_source();const volatile A cv_source();// 4 at a timeone sink_4_1234( A&); // { dg-error "" }two sink_4_1234(const A&); // { dg-error "" }three sink_4_1234(volatile A&); // { dg-error "" }four sink_4_1234(const volatile A&); // { dg-error "" }int test4_1234(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1234(v_source()); // { dg-error "no match" } sink_4_1234(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1235( A&); // { dg-error "" }two sink_4_1235(const A&); // { dg-error "" }three sink_4_1235(volatile A&); // { dg-error "" }five sink_4_1235( A&&); // { dg-error "" }int test4_1235(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1235(cva); // { dg-error "no match" } sink_4_1235(v_source()); // { dg-error "no match" } sink_4_1235(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1236( A&); // { dg-error "" }two sink_4_1236(const A&); // { dg-error "" }three sink_4_1236(volatile A&); // { dg-error "" }six sink_4_1236(const A&&); // { dg-error "" }int test4_1236(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1236(cva); // { dg-error "no match" } sink_4_1236(v_source()); // { dg-error "no match" } sink_4_1236(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1237( A&); // { dg-error "" }two sink_4_1237(const A&); // { dg-error "" }three sink_4_1237(volatile A&); // { dg-error "" }seven sink_4_1237(volatile A&&); // { dg-error "" }int test4_1237(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1237(cva); // { dg-error "no match" } sink_4_1237(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1245( A&); // { dg-error "" }two sink_4_1245(const A&); // { dg-error "" }four sink_4_1245(const volatile A&); // { dg-error "" }five sink_4_1245( A&&); // { dg-error "" }int test4_1245(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1245(v_source()); // { dg-error "no match" } sink_4_1245(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1246( A&); // { dg-error "" }two sink_4_1246(const A&); // { dg-error "" }four sink_4_1246(const volatile A&); // { dg-error "" }six sink_4_1246(const A&&); // { dg-error "" }int test4_1246(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1246(v_source()); // { dg-error "no match" } sink_4_1246(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1247( A&); // { dg-error "" }two sink_4_1247(const A&); // { dg-error "" }four sink_4_1247(const volatile A&); // { dg-error "" }seven sink_4_1247(volatile A&&); // { dg-error "" }int test4_1247(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1247(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1256( A&); // { dg-error "" }two sink_4_1256(const A&); // { dg-error "" }five sink_4_1256( A&&); // { dg-error "" }six sink_4_1256(const A&&); // { dg-error "" }int test4_1256(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1256(va); // { dg-error "no match" } sink_4_1256(cva); // { dg-error "no match" } sink_4_1256(v_source()); // { dg-error "no match" } sink_4_1256(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1257( A&); // { dg-error "" }two sink_4_1257(const A&); // { dg-error "" }five sink_4_1257( A&&); // { dg-error "" }seven sink_4_1257(volatile A&&); // { dg-error "" }int test4_1257(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1257(cva); // { dg-error "no match" } sink_4_1257(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1267( A&); // { dg-error "" }two sink_4_1267(const A&); // { dg-error "" }six sink_4_1267(const A&&); // { dg-error "" }seven sink_4_1267(volatile A&&); // { dg-error "" }int test4_1267(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1267(cva); // { dg-error "no match" } sink_4_1267(source()); // { dg-error "ambiguous" } sink_4_1267(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1345( A&); // { dg-error "" }three sink_4_1345(volatile A&); // { dg-error "" }four sink_4_1345(const volatile A&); // { dg-error "" }five sink_4_1345( A&&); // { dg-error "" }int test4_1345(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1345(c_source()); // { dg-error "no match" } sink_4_1345(v_source()); // { dg-error "no match" } sink_4_1345(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1346( A&); // { dg-error "" }three sink_4_1346(volatile A&); // { dg-error "" }four sink_4_1346(const volatile A&); // { dg-error "" }six sink_4_1346(const A&&); // { dg-error "" }int test4_1346(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1346(v_source()); // { dg-error "no match" } sink_4_1346(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1347( A&); // { dg-error "" }three sink_4_1347(volatile A&); // { dg-error "" }four sink_4_1347(const volatile A&); // { dg-error "" }seven sink_4_1347(volatile A&&); // { dg-error "" }int test4_1347(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1347(c_source()); // { dg-error "no match" } sink_4_1347(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1356( A&); // { dg-error "" }three sink_4_1356(volatile A&); // { dg-error "" }five sink_4_1356( A&&); // { dg-error "" }six sink_4_1356(const A&&); // { dg-error "" }int test4_1356(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1356(cva); // { dg-error "no match" } sink_4_1356(v_source()); // { dg-error "no match" } sink_4_1356(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1357( A&); // { dg-error "" }three sink_4_1357(volatile A&); // { dg-error "" }five sink_4_1357( A&&); // { dg-error "" }seven sink_4_1357(volatile A&&); // { dg-error "" }int test4_1357(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1357(ca); // { dg-error "no match" } sink_4_1357(cva); // { dg-error "no match" } sink_4_1357(c_source()); // { dg-error "no match" } sink_4_1357(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1367( A&); // { dg-error "" }three sink_4_1367(volatile A&); // { dg-error "" }six sink_4_1367(const A&&); // { dg-error "" }seven sink_4_1367(volatile A&&); // { dg-error "" }int test4_1367(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1367(cva); // { dg-error "no match" } sink_4_1367(source()); // { dg-error "ambiguous" } sink_4_1367(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1456( A&); // { dg-error "" }four sink_4_1456(const volatile A&); // { dg-error "" }five sink_4_1456( A&&); // { dg-error "" }six sink_4_1456(const A&&); // { dg-error "" }int test4_1456(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1456(v_source()); // { dg-error "no match" } sink_4_1456(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1457( A&); // { dg-error "" }four sink_4_1457(const volatile A&); // { dg-error "" }five sink_4_1457( A&&); // { dg-error "" }seven sink_4_1457(volatile A&&); // { dg-error "" }int test4_1457(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1457(c_source()); // { dg-error "no match" } sink_4_1457(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1467( A&); // { dg-error "" }four sink_4_1467(const volatile A&); // { dg-error "" }six sink_4_1467(const A&&); // { dg-error "" }seven sink_4_1467(volatile A&&); // { dg-error "" }int test4_1467(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1467(source()); // { dg-error "ambiguous" } sink_4_1467(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1567( A&); // { dg-error "" }five sink_4_1567( A&&); // { dg-error "" }six sink_4_1567(const A&&); // { dg-error "" }seven sink_4_1567(volatile A&&); // { dg-error "" }int test4_1567(){ A a; const A ca = a; volatile A va; const volatile A cva = a; sink_4_1567(cva); // { dg-error "no match" } sink_4_1567(cv_source()); // { dg-error "no match" } return 0;}one sink_4_1678( A&);six sink_4_1678(const A&&); // { dg-error "" }seven sink_4_1678(volatile A&&); // { dg-error "" }eight sink_4_1678(const volatile A&&); // { dg-error "" }int test4_1678(){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -