eis/mix_cc/shm/container/string.h

49 lines
1.2 KiB
C++

/**
* @file mix_cc/shm/container/string.h
* @brief 共享内存string
* @author Cat (null.null.null@qq.com)
* @version 0.1
* @date 2021-05-07
*
* Copyright: Baosight Co. Ltd.
* DO NOT COPY/USE WITHOUT PERMISSION
*
*/
#pragma once
#include <mix_cc/shm/stl_builder.h>
#include <string>
#include <boost/interprocess/containers/string.hpp>
namespace mix_cc {
namespace shm {
/**
* @brief 共享内存的基本String
* @tparam T
* @tparam Traits
* @tparam Segment
*/
template <class T, class Traits = std::char_traits<T>,
class Segment = bip::managed_mapped_file>
using BasicString = bip::basic_string<T, Traits, ScopedShmAlloc<T, Segment>>;
typedef BasicString<char> String;
typedef BasicString<wchar_t> WString;
/**
* @brief 共享内存的基本String构造器
* @tparam T
* @tparam Traits
* @tparam Segment
*/
template <class T, class Traits = std::char_traits<T>,
class Segment = bip::managed_mapped_file>
class BasicStringBuilder
: public StlBuilder<BasicString<T, Traits, Segment>, T, Segment> {};
typedef BasicStringBuilder<char> StringBuilder;
typedef BasicStringBuilder<wchar_t> WStringBuilder;
} // namespace shm
} // namespace mix_cc