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 29struct ConvertibleToCVQuals { 30 template<typename T> 31 operator T* const() const; 32}; 33 34void test_cvqual_conv(ConvertibleToCVQuals ctcv) { 35 int *ip = ctcv; 36 const int *icp = ctcv; 37} 38