Lely core libraries  2.2.5
c_type.hpp File Reference
#include <lely/util/exception.hpp>
#include <algorithm>
#include <memory>
#include <new>
#include <utility>
Include dependency graph for c_type.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  lely::bad_init
 The type of objects thrown as exceptions to report a failure to initialize an instantiation of a C type. More...
 
class  lely::bad_copy
 The type of objects thrown as exceptions to report a failure to copy an instantiation of a C type. More...
 
class  lely::bad_move
 The type of objects thrown as exceptions to report a failure to move an instantiation of a C type. More...
 
struct  lely::delete_c_type< T >
 The deleter for trivial, standard layout and incomplete C types. More...
 
struct  lely::c_type_traits< T >
 A class template supplying a uniform interface to certain attributes of C types. More...
 
struct  lely::trivial_c_type< T >
 The base class for a C++ interface to a trivial C type. More...
 
class  lely::standard_c_type< T >
 The base class for a C++ interface to a standard layout C type. More...
 
class  lely::incomplete_c_type< T >
 The base class for a C++ interface to an incomplete C type. More...
 
struct  lely::c_type_traits< T >
 A class template supplying a uniform interface to certain attributes of C types. More...
 
struct  lely::c_type_traits< void >
 A class template supplying a uniform interface to certain attributes of the C type void. More...
 
struct  lely::c_type_traits< void >::__type
 

Typedefs

template<class T >
using lely::unique_c_ptr = ::std::unique_ptr< T, delete_c_type< T > >
 A specialization of std::unique_ptr for trivial, standard layout or incomplete C types, using lely::delete_c_type as the deleter.
 

Functions

template<class T , class... Args>
inline ::std::shared_ptr< T > lely::make_shared_c (Args &&... args)
 Creates an instance of a trivial, standard layout or incomplete C type and wraps it in a std::shared_ptr, using lely::delete_c_type as the deleter.
 
template<class T , class... Args>
unique_c_ptr< T > lely::make_unique_c (Args &&... args)
 Creates an instance of a trivial, standard layout or incomplete C type and wraps it in a lely::unique_c_ptr.
 

Detailed Description

This header file is part of the utilities library; it contains the C to C++ interface declarations.

Author
J. S. Seldenthuis jseld.nosp@m.enth.nosp@m.uis@l.nosp@m.ely..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Definition in file c_type.hpp.