RINGMesh
Version 5.0.0
A programming library for geological model meshes
pimpl_impl.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2012-2017, Association Scientifique pour la Geologie et ses
3
* Applications (ASGA). All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
* * Redistributions of source code must retain the above copyright
8
* notice, this list of conditions and the following disclaimer.
9
* * Redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution.
12
* * Neither the name of ASGA nor the
13
* names of its contributors may be used to endorse or promote products
14
* derived from this software without specific prior written permission.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
18
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ASGA BE LIABLE FOR ANY DIRECT,
20
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
*
27
* http://www.ring-team.org
28
*
29
* RING Project
30
* Ecole Nationale Superieure de Geologie - GeoRessources
31
* 2 Rue du Doyen Marcel Roubault - TSA 70605
32
* 54518 VANDOEUVRE-LES-NANCY
33
* FRANCE
34
*/
35
36
#pragma once
37
38
#include <
ringmesh/basic/common.h
>
39
45
namespace
RINGMesh
46
{
47
template
<
typename
T >
48
template
<
typename
... Args >
49
PImpl< T >::PImpl
( Args&&... args )
50
: impl_{
new
T{ std::forward< Args >( args )... } }
51
{
52
}
53
54
template
<
typename
T >
55
PImpl< T >::~PImpl
()
56
{
57
}
58
59
template
<
typename
T >
60
const
T*
PImpl< T >::operator->
()
const
61
{
62
return
impl_
.get();
63
}
64
65
template
<
typename
T >
66
T*
PImpl< T >::operator->
()
67
{
68
return
impl_
.get();
69
}
70
71
template
<
typename
T >
72
T&
PImpl< T >::operator*
()
73
{
74
return
*
impl_
.get();
75
}
76
77
template
<
typename
T >
78
const
T&
PImpl< T >::operator*
()
const
79
{
80
return
*
impl_
.get();
81
}
82
83
}
// namespace RINGMesh
RINGMesh::PImpl::operator->
T * operator->()
Definition:
pimpl_impl.h:66
RINGMesh::PImpl::PImpl
PImpl(Args &&...)
RINGMesh::PImpl::operator*
T & operator*()
Definition:
pimpl_impl.h:72
RINGMesh::PImpl::~PImpl
~PImpl()
Definition:
pimpl_impl.h:55
RINGMesh::PImpl::impl_
std::unique_ptr< T > impl_
Definition:
pimpl.h:62
common.h
RINGMesh
Classes to build GeoModel from various inputs.
Definition:
algorithm.h:48
include
ringmesh
basic
pimpl_impl.h
Generated on Thu Sep 7 2017 12:33:34 for RINGMesh by
1.8.13