vector (e76eebc6) vector (dee715a7)
1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance

--- 8 unchanged lines hidden (view full) ---

17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22#ifndef SYSTEM_STL_VECTOR
23#define SYSTEM_STL_VECTOR
24
1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance

--- 8 unchanged lines hidden (view full) ---

17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22#ifndef SYSTEM_STL_VECTOR
23#define SYSTEM_STL_VECTOR
24
25#ifdef GCC
26
27#ifdef __MINGW32__
28# define _SYSTEM_STL_MAKE_HEADER(path,header) <path/header>
29# include _SYSTEM_STL_MAKE_HEADER(GXX_INCLUDE_PATH,vector)
30#else
31# include <ext/../vector>
25#ifdef HAVE_STL_INCLUDE_PATH
26 // TODO: use computed include file name
27 #include_next <vector>
28#elif defined(_MSC_VER)
29 #include <../../VC/include/vector>
30#else // fall back to boost/tr1
31 #include <boost/tr1/tr1/vector>
32#endif
33
32#endif
33
34
35#ifndef NO_STLPORT4_EMULATION
36
34namespace std
35{
37namespace std
38{
36 typedef vector<bool, std::allocator<bool> > bit_vector;
39 typedef vector<bool> bit_vector;
37}
38
40}
41
42// workaround some STL implementations having problems with their vector<bool>::count() specialization
43inline int std_bitset_count( std::bit_vector::const_iterator it, std::bit_vector::const_iterator itEnd, bool bValue)
44{
45#if 0 && defined(_LIBCPP___BIT_REFERENCE) // TODO: reenable for libc++ >= r156543/r156546/etc.
46 int nCount = std::count( it, itEnd, bValue);
39#else
47#else
40#error UNSUPPORTED COMPILER
48 int nCount = 0;
49 for(; it != itEnd; ++it)
50 if( *it == bValue)
51 ++nCount;
41#endif
52#endif
53 return nCount;
54}
55
56#endif // NO_STLPORT4_EMULATION
57
42#endif
58#endif
43/* vi:set tabstop=4 shiftwidth=4 expandtab: */
59