亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? path.hpp

?? 用STL的方式封裝了WindowsAPI、COM調(diào)用、ACE、ATL、MFC、WTL等多種組件
?? HPP
?? 第 1 頁 / 共 4 頁
字號:
    class_type              &concat_(class_type const &rhs);

    static char_type const  *next_slash_or_end(char_type const *p);
    static char_type        path_name_separator_alt();

// Members
private:
    typedef basic_file_path_buffer< char_type
                                ,   allocator_type
                                >                   buffer_type;

    struct part
    {
        enum Type
        {
                normal
            ,   dot
            ,   dotdot
        };

        size_type       len;
        char_type const *p;
        Type            type;
    };

    buffer_type m_buffer;
    size_type   m_len;
};

/* /////////////////////////////////////////////////////////////////////////
 * Typedefs for commonly encountered types
 */

/// Instantiation of the basic_path template for the ANSI character type \c char
typedef basic_path<ws_char_a_t, filesystem_traits<ws_char_a_t> >       path_a;
/// Instantiation of the basic_path template for the Unicode character type \c wchar_t
typedef basic_path<ws_char_w_t, filesystem_traits<ws_char_w_t> >       path_w;
/// Instantiation of the basic_path template for the Win32 character type \c TCHAR
typedef basic_path<TCHAR, filesystem_traits<TCHAR> >                   path;

/* /////////////////////////////////////////////////////////////////////////
 * Support for PlatformSTL redefinition by inheritance+namespace, for confused
 * compilers (e.g. VC++ 6)
 */

#ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION

    template<   ss_typename_param_k C
# ifdef STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_CLASS_ARGUMENT_SUPPORT
            ,   ss_typename_param_k T = filesystem_traits<C>
            ,   ss_typename_param_k A = processheap_allocator<C>
# else /* ? STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_CLASS_ARGUMENT_SUPPORT */
            ,   ss_typename_param_k T /* = filesystem_traits<C> */
            ,   ss_typename_param_k A /* = processheap_allocator<C> */
# endif /* STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_CLASS_ARGUMENT_SUPPORT */
            >
    class basic_path__
        : public winstl_ns_qual(basic_path)<C, T, A>
    {
    private:
        typedef winstl_ns_qual(basic_path)<C, T, A>                     parent_class_type;
        typedef winstl_ns_qual(basic_path__)<C, T, A>                   class_type;
    public:
        typedef ss_typename_type_k parent_class_type::char_type         char_type;
        typedef ss_typename_type_k parent_class_type::traits_type       traits_type;
        typedef ss_typename_type_k parent_class_type::allocator_type    allocator_type;
        typedef ss_typename_type_k parent_class_type::size_type         size_type;

    public:
        basic_path__()
            : parent_class_type()
        {}
        ss_explicit_k basic_path__(char_type const *path)
            : parent_class_type(path)
        {}
# ifdef STLSOFT_CF_MEMBER_TEMPLATE_CTOR_SUPPORT
        /// Constructs a path from \c path
        template<ss_typename_param_k S>
        ss_explicit_k basic_path__(S const &s)
            : parent_class_type(s)
        {}
# endif /* STLSOFT_CF_MEMBER_TEMPLATE_CTOR_SUPPORT */
        basic_path__(char_type const *path, size_type cch)
            : parent_class_type(path, cch)
        {}
        basic_path__(class_type const &rhs)
            : parent_class_type(rhs)
        {}

        class_type &operator =(class_type const &rhs)
        {
            parent_class_type::operator =(rhs);

            return *this;
        }
        class_type &operator =(char_type const *rhs)
        {
            parent_class_type::operator =(rhs);

            return *this;
        }
# ifdef STLSOFT_CF_MEMBER_TEMPLATE_FUNCTION_SUPPORT
        template<ss_typename_param_k S>
        class_type &operator =(S const &s)
        {
            parent_class_type::operator =(s);

            return *this;
        }
# endif /* STLSOFT_CF_MEMBER_TEMPLATE_FUNCTION_SUPPORT */
    };

#endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */

/* /////////////////////////////////////////////////////////////////////////
 * Operators
 */

template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ws_bool_t operator ==(basic_path<C, T, A> const &lhs, ss_typename_type_k basic_path<C, T, A>::char_type const *rhs)
{
    return lhs.equal(rhs);
}

template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ws_bool_t operator !=(basic_path<C, T, A> const &lhs, ss_typename_type_k basic_path<C, T, A>::char_type const *rhs)
{
    return !lhs.equal(rhs);
}

template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ws_bool_t operator ==(ss_typename_type_k basic_path<C, T, A>::char_type const *lhs, basic_path<C, T, A> const &rhs)
{
    return rhs.equal(lhs);
}

template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ws_bool_t operator !=(ss_typename_type_k basic_path<C, T, A>::char_type const *lhs, basic_path<C, T, A> const &rhs)
{
    return !rhs.equal(lhs);
}

template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ws_bool_t operator ==(basic_path<C, T, A> const &lhs, basic_path<C, T, A> const &rhs)
{
    return lhs.equal(rhs);
}

template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ws_bool_t operator !=(basic_path<C, T, A> const &lhs, basic_path<C, T, A> const &rhs)
{
    return !lhs.equal(rhs);
}

// operator /

/// \brief Concatenates \c rhs to the path \c lhs
template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline basic_path<C, T, A> operator /(basic_path<C, T, A> const &lhs, ss_typename_type_k basic_path<C, T, A>::char_type const *rhs)
{
    return basic_path<C, T, A>(lhs) /= rhs;
}

/// \brief Concatenates \c rhs to the path \c lhs
template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline basic_path<C, T, A> operator /(ss_typename_type_k basic_path<C, T, A>::char_type const *lhs, basic_path<C, T, A> const &rhs)
{
    return basic_path<C, T, A>(lhs) /= rhs;
}

/// \brief Concatenates \c rhs to the path \c lhs
template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline basic_path<C, T, A> operator /(basic_path<C, T, A> const &lhs, basic_path<C, T, A> const &rhs)
{
    return basic_path<C, T, A>(lhs) /= rhs;
}

/* /////////////////////////////////////////////////////////////////////////
 * Helper functions
 */

#if !defined(STLSOFT_COMPILER_IS_MSVC) || \
    _MSC_VER >= 1100

/// This helper function makes a path variable without needing to
/// qualify the template parameter.
template<ss_typename_param_k C>
inline basic_path<C> make_path(C const *path)
{
    return basic_path<C>(path);
}

#endif /* compiler */

/* /////////////////////////////////////////////////////////////////////////
 * swapping
 */

template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline void swap(basic_path<C, T, A> &lhs, basic_path<C, T, A> &rhs)
{
    lhs.swap(rhs);
}

/* /////////////////////////////////////////////////////////////////////////
 * Shims
 */

template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline C const *c_str_ptr_null(basic_path<C, T, A> const &b)
{
    return stlsoft_ns_qual(c_str_ptr_null)(b.c_str());
}

template<   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ws_char_a_t const *c_str_ptr_null_a(basic_path<ws_char_a_t, T, A> const &b)
{
    return stlsoft_ns_qual(c_str_ptr_null_a)(b.c_str());
}

template<   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ws_char_w_t const *c_str_ptr_null_w(basic_path<ws_char_w_t, T, A> const &b)
{
    return stlsoft_ns_qual(c_str_ptr_null_w)(b.c_str());
}



template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline C const *c_str_ptr(basic_path<C, T, A> const &b)
{
    return b.c_str();
}

template<   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ws_char_a_t const *c_str_ptr_a(basic_path<ws_char_a_t, T, A> const &b)
{
    return b.c_str();
}

template<   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ws_char_w_t const *c_str_ptr_w(basic_path<ws_char_w_t, T, A> const &b)
{
    return b.c_str();
}


template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline C const *c_str_data(basic_path<C, T, A> const &b)
{
    return b.c_str();
}

template<   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ws_char_a_t const *c_str_data_a(basic_path<ws_char_a_t, T, A> const &b)
{
    return b.c_str();
}

template<   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ws_char_w_t const *c_str_data_w(basic_path<ws_char_w_t, T, A> const &b)
{
    return b.c_str();
}




template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ws_size_t c_str_len(basic_path<C, T, A> const &b)
{
    return stlsoft_ns_qual(c_str_len)(b.c_str());
}

#if 0
template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ws_size_t c_str_size(basic_path<C, T, A> const &b)
{
    return stlsoft_ns_qual(c_str_size)(b.c_str());
}
#endif /* 0 */

template<   ss_typename_param_k S
        ,   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline S &operator <<(S & s, basic_path<C, T, A> const &b)
{
    s << b.c_str();

    return s;
}

////////////////////////////////////////////////////////////////////////////
// Unit-testing

#ifdef STLSOFT_UNITTEST
# include "./unittest/path_unittest_.h"
#endif /* STLSOFT_UNITTEST */

////////////////////////////////////////////////////////////////////////////
// Implementation

#ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION

template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline /* static */ ss_typename_param_k basic_path<C, T, A>::char_type const *basic_path<C, T, A>::next_slash_or_end(ss_typename_param_k basic_path<C, T, A>::char_type const *p)
{
    for(; ; )
    {
        switch(*p)
        {
            case    '/':
            case    '\\':
                ++p;
            case    '\0':
                return p;
            default:
                ++p;
                break;
        }
    }
}

template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline /* static */ ss_typename_param_k basic_path<C, T, A>::char_type basic_path<C, T, A>::path_name_separator_alt()
{
    return '/';
}

template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline void basic_path<C, T, A>::swap(basic_path<C, T, A> &rhs)
{
    m_buffer.swap(rhs.m_buffer);
    std::swap(m_len, rhs.m_len);
}

template<   ss_typename_param_k C
        ,   ss_typename_param_k T
        ,   ss_typename_param_k A
        >
inline ss_typename_param_k basic_path<C, T, A>::class_type &basic_path<C, T, A>::concat_(ss_typename_param_k basic_path<C, T, A>::char_type const *rhs)
{
    m_len = traits_type::str_len(traits_type::str_cat(&m_buffer[0], rhs));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产77777蜜臀| 成人免费视频网站在线观看| 国产在线精品不卡| 91麻豆国产福利精品| 精品乱码亚洲一区二区不卡| 亚洲激情中文1区| 国产成人精品三级| 精品日韩一区二区| 亚洲gay无套男同| 波多野洁衣一区| 欧美精品一区二区三区高清aⅴ| 亚洲综合色丁香婷婷六月图片| 高清在线观看日韩| 欧美成人a在线| 五月激情综合网| 91福利在线看| 国产精品第五页| 成人免费视频国产在线观看| 精品国产人成亚洲区| 奇米综合一区二区三区精品视频 | 国产午夜精品一区二区| 亚洲国产精品久久人人爱蜜臀 | 91精品综合久久久久久| 亚洲精品欧美激情| 一本一道久久a久久精品综合蜜臀| 久久久国产综合精品女国产盗摄| 免费欧美日韩国产三级电影| 欧美日韩mp4| 日韩经典中文字幕一区| 欧美精品在线观看播放| 亚洲1区2区3区4区| 欧美精品一二三| 日本不卡一区二区三区| 7777精品伊人久久久大香线蕉的 | 欧美一区二区三区免费观看视频| 一区二区三区在线观看欧美| 一本大道久久a久久精品综合| 日韩美女视频19| 91免费国产在线| 亚洲欧美日韩国产综合| 91福利社在线观看| 午夜精品福利久久久| 欧美精品成人一区二区三区四区| 午夜不卡av免费| 日韩美女在线视频| 国产高清无密码一区二区三区| 精品91自产拍在线观看一区| 国产成人h网站| 亚洲欧洲另类国产综合| 91官网在线免费观看| 日韩av中文在线观看| 欧美va亚洲va香蕉在线| 成人性生交大片| 亚洲自拍偷拍综合| 日韩欧美电影在线| 成人h动漫精品一区二区| 亚洲欧美日本在线| 欧美一区二区三区人| 盗摄精品av一区二区三区| 亚洲激情欧美激情| 日韩一区二区三免费高清| 国产精品一级片在线观看| 亚洲欧美激情一区二区| 欧美一区二区三区婷婷月色| 国产福利91精品| 亚洲另类在线制服丝袜| 91精品国产综合久久久蜜臀图片| 国产在线视频一区二区三区| ㊣最新国产の精品bt伙计久久| 欧美日韩一区 二区 三区 久久精品| 日韩国产欧美在线视频| 国产目拍亚洲精品99久久精品| 欧美综合一区二区三区| 久久国产精品第一页| 亚洲欧美国产高清| 欧美成人aa大片| 欧美网站大全在线观看| 激情综合一区二区三区| 亚洲精品亚洲人成人网在线播放| 日韩欧美国产综合| 91福利社在线观看| 国产精品一区二区久激情瑜伽| 亚洲国产成人av| 国产精品欧美极品| 精品国产污污免费网站入口| 欧美亚洲一区二区在线观看| 国产成人自拍在线| 日韩制服丝袜先锋影音| 亚洲色图制服丝袜| 国产亚洲一区字幕| 4hu四虎永久在线影院成人| 99精品视频在线播放观看| 精品亚洲成a人| 婷婷综合五月天| 亚洲免费观看视频| 国产精品卡一卡二| 久久久精品免费网站| 91精品国产一区二区三区| 在线免费观看一区| 色综合天天综合| av在线一区二区三区| 国产成人综合自拍| 精品中文字幕一区二区小辣椒| 亚洲成人午夜电影| 一区二区三区中文在线| 亚洲美女偷拍久久| 中文字幕在线不卡| 国产精品高清亚洲| 国产精品久久久久天堂| 久久久久久久久蜜桃| 精品少妇一区二区三区| 日韩精品综合一本久道在线视频| 欧美老女人在线| 欧美专区亚洲专区| 在线看一区二区| 欧美三级韩国三级日本三斤| 欧美最猛黑人xxxxx猛交| 欧美在线免费视屏| 欧美日韩亚洲丝袜制服| 欧美久久一区二区| 欧美精品一二三四| 日韩一区二区三区四区五区六区| 欧美刺激午夜性久久久久久久| 日韩三区在线观看| 国产色一区二区| 亚洲人成在线观看一区二区| 亚洲美女区一区| 婷婷丁香久久五月婷婷| 青青草97国产精品免费观看无弹窗版| 免费看日韩a级影片| 国内成人自拍视频| 丁香婷婷综合五月| 欧美综合久久久| 欧美一区二区视频在线观看2022| 欧美www视频| 国产精品乱人伦| 亚洲一区二区三区视频在线播放| 日韩精品欧美精品| 国产一区二区剧情av在线| 成人免费高清视频在线观看| 色综合久久综合网欧美综合网| 欧美三片在线视频观看| 欧美大片在线观看一区二区| 久久久91精品国产一区二区精品 | 亚洲欧美综合在线精品| 亚洲一区二区三区激情| 久久黄色级2电影| av亚洲精华国产精华精华| 欧美日韩国产乱码电影| 久久亚洲私人国产精品va媚药| 国产精品嫩草影院av蜜臀| 亚洲尤物视频在线| 色婷婷综合久久久久中文一区二区| 欧美日韩国产片| 亚洲国产精品99久久久久久久久| 亚洲精品中文字幕乱码三区| 免费精品视频在线| 99久久伊人网影院| 日韩免费一区二区| 成人欧美一区二区三区在线播放| 青青草精品视频| 91在线视频观看| 精品国产a毛片| 亚洲影院在线观看| 国产精品1区2区3区| 欧美丰满一区二区免费视频| 日韩一区在线免费观看| 久久成人久久鬼色| 欧美日韩免费观看一区三区| 亚洲国产成人在线| 七七婷婷婷婷精品国产| 一本大道久久a久久综合婷婷| 久久蜜桃av一区精品变态类天堂| 亚洲福利国产精品| 色综合欧美在线视频区| 国产三级精品三级| 老司机精品视频导航| 欧美日韩亚洲另类| 亚洲美女视频在线观看| 成人黄色电影在线| 久久久久久99久久久精品网站| 亚洲国产精品久久人人爱蜜臀| 91亚洲精品久久久蜜桃| 国产日韩欧美不卡在线| 免费看日韩a级影片| 欧美日韩不卡视频| 亚洲成人777| 欧美在线色视频| 一级日本不卡的影视| 99国产精品久久久久| 中文字幕欧美日本乱码一线二线| 激情综合色播激情啊| 欧美成人艳星乳罩| 精品无人区卡一卡二卡三乱码免费卡| 欧美精品九九99久久| 视频在线在亚洲| 制服丝袜激情欧洲亚洲| 日本中文一区二区三区| 91精品国产色综合久久不卡蜜臀| 亚洲v精品v日韩v欧美v专区|