os/ossrv/ossrv_pub/boost_apis/boost/archive/wcslen.hpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
     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) && (_MSC_VER >= 1020)
     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 {
    36 inline 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 #include <cwchar>
    48 #ifdef BOOST_NO_STDC_NAMESPACE
    49 namespace std{ using ::wcslen; }
    50 #endif
    51 
    52 #endif // wcslen
    53 
    54 #endif //BOOST_NO_CWCHAR
    55 
    56 #endif //BOOST_ARCHIVE_WCSLEN_HPP