namespace std { | |
template<typename T> | |
class allocator { | |
public: | |
void in_base(); | |
}; | |
template<typename T, typename Alloc = std::allocator<T> > | |
class vector : Alloc { | |
public: | |
void foo(); | |
void stop(); | |
}; | |
template<typename Alloc> class vector<bool, Alloc>; | |
} | |
void f() { | |
std::vector<int> v; | |
v.foo(); | |
// RUN: clang-cc -fsyntax-only -code-completion-at=%s:18:8 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s | |
// CHECK-CC1: allocator<<#typename T#>> | |
// CHECK-CC1-NEXT: vector<<#typename T#>{#, <#typename Alloc#>#}> | |
// RUN: clang-cc -fsyntax-only -code-completion-at=%s:19:5 %s -o - | FileCheck -check-prefix=CHECK-CC2 %s | |
// CHECK-CC2: foo | |
// CHECK-CC2: in_base | |
// CHECK-CC2: stop | |