38 lines
801 B
C++
38 lines
801 B
C++
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
|
// expected-no-diagnostics
|
|
|
|
// FIXME: [temp.deduct.conv]p2 bullets 1 and 2 can't actually happen without
|
|
// references?
|
|
// struct ConvertibleToArray {
|
|
// // template<typename T, unsigned N>
|
|
// // operator T(()[]) const;
|
|
|
|
// private:
|
|
// typedef int array[17];
|
|
|
|
// operator array() const;
|
|
// };
|
|
|
|
// void test_array(ConvertibleToArray cta) {
|
|
// int *ip = cta;
|
|
// ip = cta;
|
|
// const float *cfp = cta;
|
|
// }
|
|
|
|
// bullet 2
|
|
// struct ConvertibleToFunction {
|
|
// template<typename T, typename A1, typename A2>
|
|
// operator T(A1, A2) const () { };
|
|
// };
|
|
|
|
// bullet 3
|
|
struct ConvertibleToCVQuals {
|
|
template<typename T>
|
|
operator T* const() const;
|
|
};
|
|
|
|
void test_cvqual_conv(ConvertibleToCVQuals ctcv) {
|
|
int *ip = ctcv;
|
|
const int *icp = ctcv;
|
|
}
|