llvm-project/clang/test/Modules/Inputs/PR20399/vector

52 lines
860 B
Plaintext

namespace std
{
template<typename _Tp, typename _Alloc = int>
class vector
{
public:
int* _M_start;
int* _M_end_of_storage;
~vector()
{ this->_M_end_of_storage - this->_M_start; }
};
struct _Bit_iterator {};
inline int* operator-(const _Bit_iterator& __x, const _Bit_iterator& __y)
{
return 0;
}
struct _Bvector_base
{
struct _Bvector_impl
{
_Bit_iterator _M_start;
_Bvector_impl() { }
};
public:
~_Bvector_base()
{ this->_M_deallocate(); }
protected:
_Bvector_impl _M_impl;
void _M_deallocate() {}
};
template<typename _Alloc>
class vector<bool, _Alloc> : protected _Bvector_base
{
typedef _Bvector_base _Base;
public:
typedef _Bit_iterator iterator;
vector()
: _Base() { }
};
} // namespace std