LCOV - code coverage report
Current view: top level - boost/buffers - make_buffer.hpp (source / functions) Coverage Total Hit
Test: coverage_filtered.info Lines: 100.0 % 14 14
Test Date: 2025-12-06 02:12:43 Functions: 100.0 % 6 6

            Line data    Source code
       1              : //
       2              : // Copyright (c) 2023 Vinnie Falco (vinnie.falco@gmail.com)
       3              : //
       4              : // Distributed under the Boost Software License, Version 1.0. (See accompanying
       5              : // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       6              : //
       7              : // Official repository: https://github.com/cppalliance/buffers
       8              : //
       9              : 
      10              : #ifndef BOOST_BUFFERS_MAKE_BUFFER_HPP
      11              : #define BOOST_BUFFERS_MAKE_BUFFER_HPP
      12              : 
      13              : #include <boost/buffers/detail/config.hpp>
      14              : #include <boost/buffers/buffer.hpp>
      15              : #include <cstdlib>
      16              : #include <type_traits>
      17              : 
      18              : #ifdef _MSC_VER
      19              : #pragma warning(push)
      20              : #pragma warning(disable: 4459)
      21              : #endif
      22              : 
      23              : namespace boost {
      24              : namespace buffers {
      25              : 
      26              : /** Return a buffer.
      27              : */
      28              : inline
      29              : mutable_buffer
      30            1 : make_buffer(
      31              :     mutable_buffer const& b) noexcept
      32              : {
      33            1 :     return b;
      34              : }
      35              : 
      36              : /** Return a buffer.
      37              : */
      38              : inline
      39              : mutable_buffer
      40            1 : make_buffer(
      41              :     void* data,
      42              :     std::size_t size) noexcept
      43              : {
      44            1 :     return mutable_buffer(data, size);
      45              : }
      46              : 
      47              : /** Return a buffer.
      48              : */
      49              : inline
      50              : const_buffer
      51            1 : make_buffer(
      52              :     const_buffer const& b) noexcept
      53              : {
      54            1 :     return b;
      55              : }
      56              : 
      57              : /** Return a buffer.
      58              : */
      59              : inline
      60              : const_buffer
      61        16419 : make_buffer(
      62              :     void const* data,
      63              :     std::size_t size) noexcept
      64              : {
      65        16419 :     return const_buffer(data, size);
      66              : }
      67              : 
      68              : /** Return a buffer.
      69              : */
      70              : template<
      71              :     class T, std::size_t N
      72              :     , class = typename std::enable_if<
      73              :         std::is_trivially_copyable<T>::value>::type
      74              : >
      75              : mutable_buffer
      76            1 : make_buffer(
      77              :     T (&data)[N]) noexcept
      78              : {
      79            1 :     return mutable_buffer(
      80            1 :         data, N * sizeof(T));
      81              : }
      82              : 
      83              : /** Return a buffer.
      84              : */
      85              : template<
      86              :     class T, std::size_t N
      87              :     , class = typename std::enable_if<
      88              :         std::is_trivially_copyable<T>::value>::type
      89              : >
      90              : const_buffer
      91            1 : make_buffer(
      92              :     T const (&data)[N]) noexcept
      93              : {
      94            1 :     return const_buffer(
      95            1 :         data, N * sizeof(T));
      96              : }
      97              : 
      98              : } // buffers
      99              : } // boost
     100              : 
     101              : #ifdef _MSC_VER
     102              : #pragma warning(pop)
     103              : #endif
     104              : 
     105              : #endif
        

Generated by: LCOV version 2.1