Viewing file: using46.C (1.18 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
// PR c++/51141 // { dg-do compile } // { dg-options "-fpermissive -w -Werror" }
typedef int size_t; template < size_t, size_t > struct AlignedBuffer {};
template < typename > class VectorBufferBase { public: allocateBuffer (size_t) { } buffer () { } *m_buffer; size_t m_capacity; };
template < typename T, size_t > class VectorBuffer:VectorBufferBase < T > { typedef VectorBufferBase < T > Base;
public: VectorBuffer () { } allocateBuffer (size_t) { m_capacity = 0; } Base::buffer; Base::m_buffer; Base::m_capacity; size_t m_inlineBufferSize;
AlignedBuffer < 0, __alignof__ (T) > m_inlineBuffer; };
template < typename T, size_t > class Vector { typedef VectorBuffer < T, 0 > Buffer; public: void shrinkCapacity (size_t);
clear () { shrinkCapacity (0); } Buffer m_buffer; };
template < typename T, size_t inlineCapacity > void Vector < T, inlineCapacity >::shrinkCapacity (size_t) { m_buffer.allocateBuffer (0); }
struct PatternDisjunction; struct YarrPattern { reset () { m_disjunctions.clear (); } Vector < PatternDisjunction *, 0 > m_disjunctions; };
|