1*edbc6e93SRichard Smith#ifndef VECTOR 2*edbc6e93SRichard Smith#define VECTOR 3*edbc6e93SRichard Smithtemplate <bool, typename> struct B; 4*edbc6e93SRichard Smithtemplate <typename _Tp> struct B<true, _Tp> { typedef _Tp type; }; 5*edbc6e93SRichard Smithnamespace std { 6*edbc6e93SRichard Smithtemplate <typename> struct D { 7*edbc6e93SRichard Smith 8*edbc6e93SRichard Smith template <typename _Alloc2> struct F { 9*edbc6e93SRichard Smith static const bool value = 0; 10*edbc6e93SRichard Smith }; 11*edbc6e93SRichard Smith 12*edbc6e93SRichard Smith template <typename _Alloc2> 13*edbc6e93SRichard Smith typename B<F<_Alloc2>::value, _Alloc2>::type _S_select(_Alloc2); 14*edbc6e93SRichard Smith template <typename _Alloc2> 15*edbc6e93SRichard Smith static 16*edbc6e93SRichard Smith typename B<!F<_Alloc2>::value, _Alloc2>::type _S_select(_Alloc2); 17*edbc6e93SRichard Smith}; 18*edbc6e93SRichard Smithtemplate <typename _Alloc> 19*edbc6e93SRichard Smithtemplate <typename _Alloc2> 20*edbc6e93SRichard Smithconst bool D<_Alloc>::F<_Alloc2>::value; 21*edbc6e93SRichard Smith 22*edbc6e93SRichard Smithtemplate <typename> class vector { 23*edbc6e93SRichard Smithpublic: 24*edbc6e93SRichard Smith vector(int); 25*edbc6e93SRichard Smith vector(vector &) : vector(D<bool>::_S_select((bool)0)) {} 26*edbc6e93SRichard Smith}; 27*edbc6e93SRichard Smith} 28*edbc6e93SRichard Smith#endif // VECTOR