📄 900220_03.c
字号:
// g++ 1.36.1 bug 900220_03// g++ does not properly disambiguate calls to overloaded functions// which are nearly identical except that one take a reference to a// type `T' object and another takes a reference to a type `const T'// object.// (Note that the volatile stuff is commented out here because cfront// does not yet grok volatile.)// Cfront 2.0 passes this test.// keywords: references, overloading, type qualifiers, pointersint c_call_count = 0;int cc_call_count = 0;//int vc_call_count = 0;void overloaded (char&){ c_call_count++;}void overloaded (const char&){ cc_call_count++;}//void overloaded (volatile char&)//{// vc_call_count++;//}int test (){ char c = 0; const char cc = 0; //volatile char vc = 0; char& cr = c; const char& ccr = cc; //volatile char& vcr = vc; overloaded (c); // OK overloaded (cc); // gets bogus error //overloaded (vc); // OK return (c_call_count != 1 || cc_call_count != 1 /* || vc_call_count != 1 */);}int main () { return test (); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -