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