Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp0x/explicit1.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// Test for explicit conversion ops from N2437. // { dg-do compile { target c++11 } } class U; class V; class T { public: T( U const & ); //implicit converting ctor explicit T( V const & ); // explicit ctor }; class U { }; class V { }; class W { public: operator T() const; }; class X { public: explicit operator T() const; // theoretical }; int main() { U u; V v; W w; X x; // Direct initialization: T t1( u ); T t2( v ); T t3( w ); T t4( x ); // Copy initialization: T t5 = u; T t6 = v; // { dg-error "" } T t7 = w; T t8 = x; // { dg-error "" } // Cast notation: T t9 = (T) u; T t10 = (T) v; T t11 = (T) w; T t12 = (T) x; // Static cast: T t13 = static_cast<T>( u ); T t14 = static_cast<T>( v ); T t15 = static_cast<T>( w ); T t16 = static_cast<T>( x ); // Function-style cast: T t17 = T( u ); T t18 = T( v ); T t19 = T( w ); T t20 = T( x ); return 0; }