ArcGIS Procedural Runtime
3.1.9666
SDK
Namespaces
Classes
Files
File List
All
Classes
Namespaces
Functions
Variables
Typedefs
Enumerations
Enumerator
Pages
src
prtx
OpaquePtr.h
1
/*
2
COPYRIGHT (c) 2012-2023 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
Generated on Wed Nov 8 2023 09:45:52 for ArcGIS Procedural Runtime by
1.8.5