1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 // expected-no-diagnostics 3 4 // FIXME: [temp.deduct.conv]p2 bullets 1 and 2 can't actually happen without 5 // references? 6 // struct ConvertibleToArray { 7 // // template<typename T, unsigned N> 8 // // operator T(()[]) const; 9 10 // private: 11 // typedef int array[17]; 12 13 // operator array() const; 14 // }; 15 16 // void test_array(ConvertibleToArray cta) { 17 // int *ip = cta; 18 // ip = cta; 19 // const float *cfp = cta; 20 // } 21 22 // bullet 2 23 // struct ConvertibleToFunction { 24 // template<typename T, typename A1, typename A2> 25 // operator T(A1, A2) const () { }; 26 // }; 27 28 // bullet 3 29 struct ConvertibleToCVQuals { 30 template<typename T> 31 operator T* const() const; 32 }; 33 34 void test_cvqual_conv(ConvertibleToCVQuals ctcv) { 35 int *ip = ctcv; 36 const int *icp = ctcv; 37 } 38