本文整理汇总了C++中checked_get_container_size函数的典型用法代码示例。如果您正苦于以下问题:C++ checked_get_container_size函数的具体用法?C++ checked_get_container_size怎么用?C++ checked_get_container_size使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了checked_get_container_size函数的16个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: operator
msgpack::packer<Stream>& operator()(msgpack::packer<Stream>& o, const char(&v)[N]) const {
char const* p = v;
uint32_t size = checked_get_container_size(std::strlen(p));
o.pack_str(size);
o.pack_str_body(p, size);
return o;
}
开发者ID:Occite,项目名称:msgpack-c,代码行数:7,代码来源:carray.hpp
示例2: checked_get_container_size
inline void operator<< (msgpack::object& o, const std::string& v)
{
uint32_t size = checked_get_container_size(v.size());
o.type = msgpack::type::STR;
o.via.str.ptr = v.data();
o.via.str.size = size;
}
开发者ID:JerkWisdom,项目名称:zpublic,代码行数:7,代码来源:string.hpp
示例3: operator
void operator()(msgpack::object::with_zone& o, const std::vector<T>& v) const {
o.type = msgpack::type::ARRAY;
if(v.empty()) {
o.via.array.ptr = nullptr;
o.via.array.size = 0;
} else {
uint32_t size = checked_get_container_size(v.size());
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size));
msgpack::object* const pend = p + size;
o.via.array.ptr = p;
o.via.array.size = size;
typename std::vector<T>::const_iterator it(v.begin());
do {
#if defined(__GNUC__) && !defined(__clang__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
#endif // defined(__GNUC__) && !defined(__clang__)
*p = msgpack::object(*it, o.zone);
#if defined(__GNUC__) && !defined(__clang__)
#pragma GCC diagnostic pop
#endif // defined(__GNUC__) && !defined(__clang__)
++p;
++it;
} while(p < pend);
}
}
开发者ID:EricLau2018,项目名称:msgpack-c,代码行数:26,代码来源:vector.hpp
示例4: operator
clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::array<unsigned char, N>& v) const {
uint32_t size = checked_get_container_size(v.size());
o.pack_bin(size);
o.pack_bin_body(reinterpret_cast<char const*>(v.data()), size);
return o;
}
开发者ID:rpclib,项目名称:rpclib,代码行数:7,代码来源:array_unsigned_char.hpp
示例5: operator
msgpack::packer<Stream>& operator()(msgpack::packer<Stream>& o, const std::array<char, N>& v) const {
uint32_t size = checked_get_container_size(v.size());
o.pack_bin(size);
o.pack_bin_body(v.data(), size);
return o;
}
开发者ID:1234224576,项目名称:ProfileMaker,代码行数:7,代码来源:array_char.hpp
示例6: operator
msgpack::packer<Stream>& operator()(msgpack::packer<Stream>& o, const std::vector<char, Alloc>& v) const {
uint32_t size = checked_get_container_size(v.size());
o.pack_bin(size);
o.pack_bin_body(&v.front(), size);
return o;
}
开发者ID:apre,项目名称:msgpack-c,代码行数:7,代码来源:vector_char.hpp
示例7: operator
msgpack::packer<Stream>& operator()(
msgpack::packer<Stream>& o,
const std::tuple<Args...>& v) const {
uint32_t size = checked_get_container_size(sizeof...(Args));
o.pack_array(size);
StdTuplePacker<Stream, decltype(v), sizeof...(Args)>::pack(o, v);
return o;
}
开发者ID:1234224576,项目名称:ProfileMaker,代码行数:8,代码来源:tuple.hpp
示例8: operator
void operator()(clmdep_msgpack::object::with_zone& o, const std::string& v) const {
uint32_t size = checked_get_container_size(v.size());
o.type = clmdep_msgpack::type::STR;
char* ptr = static_cast<char*>(o.zone.allocate_align(size));
o.via.str.ptr = ptr;
o.via.str.size = size;
std::memcpy(ptr, v.data(), v.size());
}
开发者ID:rpclib,项目名称:rpclib,代码行数:8,代码来源:string.hpp
示例9: operator
void operator()(msgpack::object& o, const std::vector<char, Alloc>& v) const {
uint32_t size = checked_get_container_size(v.size());
o.type = msgpack::type::BIN;
if (size != 0) {
o.via.bin.ptr = &v.front();
}
o.via.bin.size = size;
}
开发者ID:darrenjs,项目名称:nexio,代码行数:8,代码来源:vector_char.hpp
示例10: operator
clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const std::set<T, Compare, Alloc>& v) const {
uint32_t size = checked_get_container_size(v.size());
o.pack_array(size);
for (typename std::set<T, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
it != it_end; ++it) {
o.pack(*it);
}
return o;
}
开发者ID:rpclib,项目名称:rpclib,代码行数:9,代码来源:set.hpp
示例11: operator
msgpack::packer<Stream>& operator()(msgpack::packer<Stream>& o, const std::unordered_multiset<T>& v) const {
uint32_t size = checked_get_container_size(v.size());
o.pack_array(size);
for(typename std::unordered_multiset<T>::const_iterator it(v.begin()), it_end(v.end());
it != it_end; ++it) {
o.pack(*it);
}
return o;
}
开发者ID:1234224576,项目名称:ProfileMaker,代码行数:9,代码来源:unordered_set.hpp
示例12: operator
msgpack::packer<Stream>& operator()(msgpack::packer<Stream>& o, const std::unordered_map<K, V, Hash, Compare, Alloc>& v) const {
uint32_t size = checked_get_container_size(v.size());
o.pack_map(size);
for(typename std::unordered_map<K, V, Hash, Compare, Alloc>::const_iterator it(v.begin()), it_end(v.end());
it != it_end; ++it) {
o.pack(it->first);
o.pack(it->second);
}
return o;
}
开发者ID:DarumasLegs,项目名称:volumedriver,代码行数:10,代码来源:unordered_map.hpp
示例13: operator
clmdep_msgpack::packer<Stream>& operator()(clmdep_msgpack::packer<Stream>& o, const MSGPACK_STD_TR1::unordered_multimap<K, V, Hash, Pred, Alloc>& v) const {
uint32_t size = checked_get_container_size(v.size());
o.pack_map(size);
for(typename MSGPACK_STD_TR1::unordered_multimap<K, V, Hash, Pred, Alloc>::const_iterator it(v.begin()), it_end(v.end());
it != it_end; ++it) {
o.pack(it->first);
o.pack(it->second);
}
return o;
}
开发者ID:EttusResearch,项目名称:uhd,代码行数:10,代码来源:unordered_map.hpp
示例14: operator
void operator()(clmdep_msgpack::object::with_zone& o, const std::forward_list<T, Alloc>& v) const {
o.type = clmdep_msgpack::type::ARRAY;
if(v.empty()) {
o.via.array.ptr = nullptr;
o.via.array.size = 0;
} else {
uint32_t size = checked_get_container_size(std::distance(v.begin(), v.end()));
o.via.array.size = size;
clmdep_msgpack::object* p = static_cast<clmdep_msgpack::object*>(
o.zone.allocate_align(sizeof(clmdep_msgpack::object)*size));
o.via.array.ptr = p;
for(auto const& e : v) *p++ = clmdep_msgpack::object(e, o.zone);
}
}
开发者ID:rpclib,项目名称:rpclib,代码行数:14,代码来源:forward_list.hpp
示例15: operator
void operator()(msgpack::object::with_zone& o, const std::set<T, Compare, Alloc>& v) const {
o.type = msgpack::type::ARRAY;
if (v.empty()) {
o.via.array.ptr = MSGPACK_NULLPTR;
o.via.array.size = 0;
}
else {
uint32_t size = checked_get_container_size(v.size());
msgpack::object* p = static_cast<msgpack::object*>(o.zone.allocate_align(sizeof(msgpack::object)*size, MSGPACK_ZONE_ALIGNOF(msgpack::object)));
msgpack::object* const pend = p + size;
o.via.array.ptr = p;
o.via.array.size = size;
typename std::set<T, Compare, Alloc>::const_iterator it(v.begin());
do {
*p = msgpack::object(*it, o.zone);
++p;
++it;
} while(p < pend);
}
}
开发者ID:BrainlessLabs,项目名称:bun,代码行数:20,代码来源:set.hpp
示例16: operator
void operator()(clmdep_msgpack::object& o, const boost::string_ref& v) const {
uint32_t size = checked_get_container_size(v.size());
o.type = clmdep_msgpack::type::STR;
o.via.str.ptr = v.data();
o.via.str.size = size;
}
开发者ID:rpclib,项目名称:rpclib,代码行数:6,代码来源:string_ref.hpp
注:本文中的checked_get_container_size函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论