overlapped_ptr.cpp

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

CPP
96
字号
//// overlapped_ptr.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/windows/overlapped_ptr.hpp>#include <boost/asio.hpp>#include "../unit_test.hpp"//------------------------------------------------------------------------------// windows_overlapped_ptr_compile test// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// The following test checks that all public member functions on the class// windows::overlapped_ptr compile and link correctly. Runtime failures are// ignored.namespace windows_overlapped_ptr_compile {void overlapped_handler_1(const boost::system::error_code&, std::size_t){}struct overlapped_handler_2{  void operator()(const boost::system::error_code&, std::size_t)  {  }};void test(){#if defined(BOOST_ASIO_HAS_WINDOWS_OVERLAPPED_PTR)  using namespace boost::asio;  namespace win = boost::asio::windows;  try  {    io_service ios;    // basic_overlapped_ptr constructors.    win::overlapped_ptr ptr1;    win::overlapped_ptr ptr2(ios, overlapped_handler_1);    win::overlapped_ptr ptr3(ios, overlapped_handler_2());    // overlapped_ptr functions.    ptr1.reset();    ptr2.reset(ios, overlapped_handler_1);    ptr3.reset(ios, overlapped_handler_2());    OVERLAPPED* ov1 = ptr1.get();    (void)ov1;    const win::overlapped_ptr& ptr4(ptr1);    const OVERLAPPED* ov2 = ptr4.get();    (void)ov2;    OVERLAPPED* ov3 = ptr1.release();    (void)ov3;    boost::system::error_code ec;    std::size_t bytes_transferred = 0;    ptr1.complete(ec, bytes_transferred);  }  catch (std::exception&)  {  }#endif // defined(BOOST_ASIO_HAS_WINDOWS_OVERLAPPED_PTR)}} // namespace windows_overlapped_ptr_compile//------------------------------------------------------------------------------test_suite* init_unit_test_suite(int, char*[]){  test_suite* test = BOOST_TEST_SUITE("windows/overlapped_ptr");  test->add(BOOST_TEST_CASE(&windows_overlapped_ptr_compile::test));  return test;}

⌨️ 快捷键说明

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