trivcnv.cpp
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C++ 代码 · 共 114 行
CPP
114 行
#include "dump.h"
//Trivial Conversions
// This file should compile without error.
// from T to T&
void fri( ... ) BAD;
void fri( int & ) GOOD;
void gri( int a )
{
fri( a );
}
// from T& to T
void fi( ... ) BAD;
void fi( int ) GOOD;
void gi( int &a )
{
fi( a );
}
// from T[] to T*
void fpi( ... ) BAD;
void fpi( int * ) GOOD;
void gpi( int a[] )
{
fpi( a );
}
// from T* to T[]
void fai( ... ) BAD;
void fai( int [] ) GOOD;
void gai( int *a )
{
fai( a );
}
// from T(args) to T(*)(args)
void fpfi( ... ) BAD;
typedef int (*pFTiRi)( int );
void fpfi( pFTiRi ) GOOD;
int hpfi( int ){ return 0; };
void gpfi( void )
{
fpfi( hpfi );
}
// from T to const T
void fci( ... ) BAD;
void fci( const int ) GOOD;
void gci( int a )
{
fci( a );
}
// from T to volatile T
void fvi( ... ) BAD;
void fvi( volatile int ) GOOD;
void gvi( int a )
{
fvi( a );
}
// from T* to const T*
typedef int *PIcpi;
void fcpi( ... ) BAD;
void fcpi( const PIcpi ) GOOD;
void gcpi( PIcpi a )
{
fcpi( a );
}
// from T* to volatile T*
typedef int *PIvpi;
void fvpi( ... ) BAD;
void fvpi( volatile PIvpi ) GOOD;
void gvpi( PIvpi a )
{
fvpi( a );
}
// from T& to T * const &
void goo(...) BAD;
void goo( char * const & ) GOOD;
void foo( char a )
{
goo( &a );
}
int main( void ) {
int gri_a;
int &gi_a = gri_a;
int gpi_a[3];
int *gai_a;
int gci_a;
int gvi_a;
PIcpi gcpi_a;
PIvpi gvpi_a;
int a;
gri( gri_a );
gi( gi_a );
gpi( gpi_a );
gai( gai_a );
gpfi( );
gci( gci_a );
gvi( gvi_a );
gcpi( gcpi_a );
gvpi( gvpi_a );
foo(a);
CHECK_GOOD( 372+84 );
return errors != 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?