Line data Source code
1 : // Locale support -*- C++ -*- 2 : 3 : // Copyright (C) 2000-2019 Free Software Foundation, Inc. 4 : // 5 : // This file is part of the GNU ISO C++ Library. This library is free 6 : // software; you can redistribute it and/or modify it under the 7 : // terms of the GNU General Public License as published by the 8 : // Free Software Foundation; either version 3, or (at your option) 9 : // any later version. 10 : 11 : // This library is distributed in the hope that it will be useful, 12 : // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 : // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 : // GNU General Public License for more details. 15 : 16 : // Under Section 7 of GPL version 3, you are granted additional 17 : // permissions described in the GCC Runtime Library Exception, version 18 : // 3.1, as published by the Free Software Foundation. 19 : 20 : // You should have received a copy of the GNU General Public License and 21 : // a copy of the GCC Runtime Library Exception along with this program; 22 : // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23 : // <http://www.gnu.org/licenses/>. 24 : 25 : /** @file bits/ctype_inline.h 26 : * This is an internal header file, included by other library headers. 27 : * Do not attempt to use it directly. @headername{locale} 28 : */ 29 : 30 : // 31 : // ISO C++ 14882: 22.1 Locales 32 : // 33 : 34 : // ctype bits to be inlined go here. Non-inlinable (ie virtual do_*) 35 : // functions go in ctype.cc 36 : 37 : namespace std _GLIBCXX_VISIBILITY(default) 38 : { 39 : _GLIBCXX_BEGIN_NAMESPACE_VERSION 40 : 41 : bool 42 1214988 : ctype<char>:: 43 : is(mask __m, char __c) const 44 1214988 : { return _M_table[static_cast<unsigned char>(__c)] & __m; } 45 : 46 : const char* 47 : ctype<char>:: 48 : is(const char* __low, const char* __high, mask* __vec) const 49 : { 50 : while (__low < __high) 51 : *__vec++ = _M_table[static_cast<unsigned char>(*__low++)]; 52 : return __high; 53 : } 54 : 55 : const char* 56 : ctype<char>:: 57 : scan_is(mask __m, const char* __low, const char* __high) const 58 : { 59 : while (__low < __high 60 : && !(_M_table[static_cast<unsigned char>(*__low)] & __m)) 61 : ++__low; 62 : return __low; 63 : } 64 : 65 : const char* 66 : ctype<char>:: 67 : scan_not(mask __m, const char* __low, const char* __high) const 68 : { 69 : while (__low < __high 70 : && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0) 71 : ++__low; 72 : return __low; 73 : } 74 : 75 : _GLIBCXX_END_NAMESPACE_VERSION 76 : } // namespace