qualttp19.c

来自「this is a gcc file, you can download it 」· C语言 代码 · 共 42 行

C
42
字号
// { dg-do compile }// Copyright (C) 2001 Free Software Foundation, Inc.// Contributed by Nathan Sidwell 15 Dec 2001 <nathan@codesourcery.com>// PR 2645template <typename T>struct call_traits{  public:  typedef T type_less_spec;};template <typename T>struct call_traits<T&>{  typedef T type_more_spec;};int main(){  int num;     // Two typedefs lead to the instant. of the less spec. ("wrong") template  typedef int& r_type;  typedef const r_type cr_type;  call_traits<cr_type>::type_less_spec var  = num; // { dg-error "" "" }     // The explicit type leads to the instantiation of the "correct" one  call_traits<const int&>::type_more_spec var2 = num;     // As happen with a single typedef!  typedef const int& std_cr_type;  call_traits<std_cr_type>::type_more_spec var3 = num;       // As happen, indeed, without the cv-qualifier  call_traits<r_type>::type_more_spec var4;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?