• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
test_cvqual_conv(ConvertibleToCVQuals ctcv)34 void test_cvqual_conv(ConvertibleToCVQuals ctcv) {
35   int *ip = ctcv;
36   const int *icp = ctcv;
37 }
38