ArcGIS Procedural Runtime
3.2.10650
src
prtx
OpaquePtr.h
1
/*
2
COPYRIGHT (c) 2012-2024 Esri R&D Center Zurich
3
TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
4
Unpublished material - all rights reserved under the
5
Copyright Laws of the United States and applicable international
6
laws, treaties, and conventions.
7
8
For additional information, contact:
9
Environmental Systems Research Institute, Inc.
10
Attn: Contracts and Legal Services Department
11
380 New York Street
12
Redlands, California, 92373
13
USA
14
15
email: contracts@esri.com
16
*/
17
18
#pragma once
19
20
#include <memory>
21
22
23
namespace
prtx
{
24
28
template
<
typename
T>
29
class
OpaquePtr
{
30
public
:
31
OpaquePtr
();
32
OpaquePtr
(
OpaquePtr<T>
const
& other);
33
OpaquePtr
(
OpaquePtr<T>
&& other);
34
OpaquePtr<T>
& operator=(
OpaquePtr<T>
const
& other);
35
OpaquePtr<T>
& operator=(
OpaquePtr<T>
&& other);
36
37
template
<
typename
...Args>
38
OpaquePtr
(Args&&...);
39
40
~
OpaquePtr
();
41
42
T* operator->();
43
T
const
* operator->()
const
;
44
T& operator*();
45
46
private
:
47
48
std::unique_ptr<T> m;
49
};
50
51
}
// namespace prtx
52
53
54
// helper macros to suppress MSVC warnings
55
56
#ifdef _MSC_VER
57
58
# define BEGIN_SUPPRESS_EXPORT_WARNINGS \
59
__pragma(warning(push)) \
60
__pragma(warning (disable : 4251))
61
62
# define END_SUPPRESS_EXPORT_WARNINGS \
63
__pragma(warning(pop))
64
65
#else
66
# define BEGIN_SUPPRESS_EXPORT_WARNINGS
67
# define END_SUPPRESS_EXPORT_WARNINGS
68
#endif
prtx::OpaquePtr
Definition:
OpaquePtr.h:29
prtx
The Procedural Runtime eXtension namespace. The prtx namespace contains the tools to extend the Proce...
Definition:
AnnotationBuilder.h:35
Generated on Wed Nov 6 2024 10:59:45 for ArcGIS Procedural Runtime by
1.8.14