buffers_iterator.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 231 行

CPP
231
字号
//// buffers_iterator.cpp// ~~~~~~~~~~~~~~~~~~~~//// Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)//// Distributed under the Boost Software License, Version 1.0. (See accompanying// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)//// Disable autolinking for unit tests.#if !defined(BOOST_ALL_NO_LIB)#define BOOST_ALL_NO_LIB 1#endif // !defined(BOOST_ALL_NO_LIB)// Test that header file is self-contained.#include <boost/asio/buffers_iterator.hpp>#include <boost/asio.hpp>#include "unit_test.hpp"//------------------------------------------------------------------------------// buffers_iterator_compile test// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// The following test checks that all operations on the buffers_iterator compile// and link correctly. Runtime failures are ignored.namespace buffers_iterator_compile {using boost::array;using std::vector;using namespace boost::asio;void test(){  try  {    char data1[16], data2[16];    const char cdata1[16] = "", cdata2[16] = "";    mutable_buffers_1 mb1 = buffer(data1);    array<mutable_buffer, 2> mb2 = {{ buffer(data1), buffer(data2) }};    std::vector<mutable_buffer> mb3;    mb3.push_back(buffer(data1));    const_buffers_1 cb1 = buffer(cdata1);    array<const_buffer, 2> cb2 = {{ buffer(cdata1), buffer(cdata2) }};    vector<const_buffer> cb3;    cb3.push_back(buffer(cdata1));    // buffers_iterator constructors.    buffers_iterator<mutable_buffers_1, char> bi1;    buffers_iterator<mutable_buffers_1, const char> bi2;    buffers_iterator<array<mutable_buffer, 2>, char> bi3;    buffers_iterator<array<mutable_buffer, 2>, const char> bi4;    buffers_iterator<vector<mutable_buffer>, char> bi5;    buffers_iterator<vector<mutable_buffer>, const char> bi6;    buffers_iterator<const_buffers_1, char> bi7;    buffers_iterator<const_buffers_1, const char> bi8;    buffers_iterator<array<const_buffer, 2>, char> bi9;    buffers_iterator<array<const_buffer, 2>, const char> bi10;    buffers_iterator<vector<const_buffer>, char> bi11;    buffers_iterator<vector<const_buffer>, const char> bi12;    buffers_iterator<mutable_buffers_1, char> bi13(bi1);    buffers_iterator<mutable_buffers_1, const char> bi14(bi2);    buffers_iterator<array<mutable_buffer, 2>, char> bi15(bi3);    buffers_iterator<array<mutable_buffer, 2>, const char> bi16(bi4);    buffers_iterator<vector<mutable_buffer>, char> bi17(bi5);    buffers_iterator<vector<mutable_buffer>, const char> bi18(bi6);    buffers_iterator<const_buffers_1, char> bi19(bi7);    buffers_iterator<const_buffers_1, const char> bi20(bi8);    buffers_iterator<array<const_buffer, 2>, char> bi21(bi9);    buffers_iterator<array<const_buffer, 2>, const char> bi22(bi10);    buffers_iterator<vector<const_buffer>, char> bi23(bi11);    buffers_iterator<vector<const_buffer>, const char> bi24(bi12);    // buffers_iterator member functions.    bi1 = buffers_iterator<mutable_buffers_1, char>::begin(mb1);    bi2 = buffers_iterator<mutable_buffers_1, const char>::begin(mb1);    bi3 = buffers_iterator<array<mutable_buffer, 2>, char>::begin(mb2);    bi4 = buffers_iterator<array<mutable_buffer, 2>, const char>::begin(mb2);    bi5 = buffers_iterator<vector<mutable_buffer>, char>::begin(mb3);    bi6 = buffers_iterator<vector<mutable_buffer>, const char>::begin(mb3);    bi7 = buffers_iterator<const_buffers_1, char>::begin(cb1);    bi8 = buffers_iterator<const_buffers_1, const char>::begin(cb1);    bi9 = buffers_iterator<array<const_buffer, 2>, char>::begin(cb2);    bi10 = buffers_iterator<array<const_buffer, 2>, const char>::begin(cb2);    bi11 = buffers_iterator<vector<const_buffer>, char>::begin(cb3);    bi12 = buffers_iterator<vector<const_buffer>, const char>::begin(cb3);    bi1 = buffers_iterator<mutable_buffers_1, char>::end(mb1);    bi2 = buffers_iterator<mutable_buffers_1, const char>::end(mb1);    bi3 = buffers_iterator<array<mutable_buffer, 2>, char>::end(mb2);    bi4 = buffers_iterator<array<mutable_buffer, 2>, const char>::end(mb2);    bi5 = buffers_iterator<vector<mutable_buffer>, char>::end(mb3);    bi6 = buffers_iterator<vector<mutable_buffer>, const char>::end(mb3);    bi7 = buffers_iterator<const_buffers_1, char>::end(cb1);    bi8 = buffers_iterator<const_buffers_1, const char>::end(cb1);    bi9 = buffers_iterator<array<const_buffer, 2>, char>::end(cb2);    bi10 = buffers_iterator<array<const_buffer, 2>, const char>::end(cb2);    bi11 = buffers_iterator<vector<const_buffer>, char>::end(cb3);    bi12 = buffers_iterator<vector<const_buffer>, const char>::end(cb3);    // buffers_iterator related functions.    bi1 = buffers_begin(mb1);    bi3 = buffers_begin(mb2);    bi5 = buffers_begin(mb3);    bi7 = buffers_begin(cb1);    bi9 = buffers_begin(cb2);    bi11 = buffers_begin(cb3);    bi1 = buffers_end(mb1);    bi3 = buffers_end(mb2);    bi5 = buffers_end(mb3);    bi7 = buffers_end(cb1);    bi9 = buffers_end(cb2);    bi11 = buffers_end(cb3);    // RandomAccessIterator operations.    --bi1;    --bi2;    --bi3;    --bi4;    --bi5;    --bi6;    --bi7;    --bi8;    --bi9;    --bi10;    --bi11;    --bi12;    ++bi1;    ++bi2;    ++bi3;    ++bi4;    ++bi5;    ++bi6;    ++bi7;    ++bi8;    ++bi9;    ++bi10;    ++bi11;    ++bi12;    bi1--;    bi2--;    bi3--;    bi4--;    bi5--;    bi6--;    bi7--;    bi8--;    bi9--;    bi10--;    bi11--;    bi12--;    bi1++;    bi2++;    bi3++;    bi4++;    bi5++;    bi6++;    bi7++;    bi8++;    bi9++;    bi10++;    bi11++;    bi12++;    bi1 -= 1;    bi2 -= 1;    bi3 -= 1;    bi4 -= 1;    bi5 -= 1;    bi6 -= 1;    bi7 -= 1;    bi8 -= 1;    bi9 -= 1;    bi10 -= 1;    bi11 -= 1;    bi12 -= 1;    bi1 += 1;    bi2 += 1;    bi3 += 1;    bi4 += 1;    bi5 += 1;    bi6 += 1;    bi7 += 1;    bi8 += 1;    bi9 += 1;    bi10 += 1;    bi11 += 1;    bi12 += 1;    static_cast<std::ptrdiff_t>(bi13 - bi1);    static_cast<std::ptrdiff_t>(bi14 - bi2);    static_cast<std::ptrdiff_t>(bi15 - bi3);    static_cast<std::ptrdiff_t>(bi16 - bi4);    static_cast<std::ptrdiff_t>(bi17 - bi5);    static_cast<std::ptrdiff_t>(bi18 - bi6);    static_cast<std::ptrdiff_t>(bi19 - bi7);    static_cast<std::ptrdiff_t>(bi20 - bi8);    static_cast<std::ptrdiff_t>(bi21 - bi9);    static_cast<std::ptrdiff_t>(bi22 - bi10);    static_cast<std::ptrdiff_t>(bi23 - bi11);    static_cast<std::ptrdiff_t>(bi24 - bi12);  }  catch (std::exception&)  {  }}} // namespace buffers_iterator_compile//------------------------------------------------------------------------------test_suite* init_unit_test_suite(int, char*[]){  test_suite* test = BOOST_TEST_SUITE("buffers_iterator");  test->add(BOOST_TEST_CASE(&buffers_iterator_compile::test));  return test;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?