1 #ifndef BOOST_ARCHIVE_WCSLEN_HPP 2 #define BOOST_ARCHIVE_WCSLEN_HPP 3 4 // MS compatible compilers support #pragma once 5 #if defined(_MSC_VER) 6 # pragma once 7 #endif 8 9 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 10 // wcslen.hpp: 11 12 // (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . 13 // Use, modification and distribution is subject to the Boost Software 14 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 15 // http://www.boost.org/LICENSE_1_0.txt) 16 17 // See http://www.boost.org for updates, documentation, and revision history. 18 19 #include <cstddef> // size_t 20 #include <boost/config.hpp> 21 #if defined(BOOST_NO_STDC_NAMESPACE) 22 namespace std{ 23 using ::size_t; 24 } // namespace std 25 #endif 26 27 #ifndef BOOST_NO_CWCHAR 28 29 // a couple of libraries which include wchar_t don't include 30 // wcslen 31 32 #if defined(BOOST_DINKUMWARE_STDLIB) && BOOST_DINKUMWARE_STDLIB < 306 \ 33 || defined(__LIBCOMO__) 34 35 namespace std { wcslen(const wchar_t * ws)36inline std::size_t wcslen(const wchar_t * ws) 37 { 38 const wchar_t * eows = ws; 39 while(* eows != 0) 40 ++eows; 41 return eows - ws; 42 } 43 } // namespace std 44 45 #else 46 47 #ifndef BOOST_NO_CWCHAR 48 #include <cwchar> 49 #endif 50 #ifdef BOOST_NO_STDC_NAMESPACE 51 namespace std{ using ::wcslen; } 52 #endif 53 54 #endif // wcslen 55 56 #endif //BOOST_NO_CWCHAR 57 58 #endif //BOOST_ARCHIVE_WCSLEN_HPP 59