BDE 4.39.x Production Release
Loading...
Searching...
No Matches
bdlar_refdatautil.h
Go to the documentation of this file.
1/// @file bdlar_refdatautil.h
2///
3/// The content of this file has been pre-processed for Doxygen.
4///
5
6
7// bdlar_refdatautil.h -*-C++-*-
8#ifndef INCLUDED_BDLAR_REFDATAUTIL
9#define INCLUDED_BDLAR_REFDATAUTIL
10
11#include <bsls_ident.h>
12BSLS_IDENT("$Id: $")
13
14/// @defgroup bdlar_refdatautil bdlar_refdatautil
15/// @brief Provide ...
16/// @addtogroup bdl
17/// @{
18/// @addtogroup bdlar
19/// @{
20/// @addtogroup bdlar_refdatautil
21/// @{
22///
23/// <h1> Outline </h1>
24/// * <a href="#bdlar_refdatautil-purpose"> Purpose</a>
25/// * <a href="#bdlar_refdatautil-classes"> Classes </a>
26/// * <a href="#bdlar_refdatautil-description"> Description </a>
27///
28/// # Purpose {#bdlar_refdatautil-purpose}
29/// Provide ...
30///
31/// # Classes {#bdlar_refdatautil-classes}
32///
33/// - bdlar::RefDataUtil: ...
34///
35/// # Description {#bdlar_refdatautil-description}
36/// This component provides ...
37///
38/// @}
39/** @} */
40/** @} */
41
42/** @addtogroup bdl
43 * @{
44 */
45/** @addtogroup bdlar
46 * @{
47 */
48/** @addtogroup bdlar_refdatautil
49 * @{
50 */
51
52#include <bdlar_anyrefdata.h>
53#include <bdlar_vtableutil.h>
54
55
56namespace bdlar {
57
58 // ==================
59 // struct RefDataUtil
60 // ==================
61
63 // CLASS METHODS
64 template <class t_TYPE>
65 static AnyConstRefData makeAnyConstRefData(const t_TYPE *object);
66
67 template <class t_TYPE>
68 static AnyRefData makeAnyRefData(t_TYPE *object);
69};
70
71// ============================================================================
72// INLINE DEFINITIONS
73// ============================================================================
74
75 // ------------------
76 // struct RefDataUtil
77 // ------------------
78
79template <class t_TYPE>
80inline
82{
83 AnyConstRefData result = {
84 object,
85 VtableUtil::getConstVtable<t_TYPE>(),
87 };
88 return result;
89}
90
91template <class t_TYPE>
92inline
94{
95 AnyRefData result = {
96 object,
97 VtableUtil::getVtable<t_TYPE>(),
99 };
100 return result;
101}
102
103} // close package namespace
104
105
106#endif
107
108// ----------------------------------------------------------------------------
109// Copyright 2024 Bloomberg Finance L.P.
110//
111// Licensed under the Apache License, Version 2.0 (the "License");
112// you may not use this file except in compliance with the License.
113// You may obtain a copy of the License at
114//
115// http://www.apache.org/licenses/LICENSE-2.0
116//
117// Unless required by applicable law or agreed to in writing, software
118// distributed under the License is distributed on an "AS IS" BASIS,
119// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
120// See the License for the specific language governing permissions and
121// limitations under the License.
122// ----------------------------- END-OF-FILE ----------------------------------
123
124/** @} */
125/** @} */
126/** @} */
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlar_accessorref.h:59
Definition bdlar_anyrefdata.h:75
Definition bdlar_anyrefdata.h:64
Definition bdlar_refdatautil.h:62
static AnyConstRefData makeAnyConstRefData(const t_TYPE *object)
Definition bdlar_refdatautil.h:81
static AnyRefData makeAnyRefData(t_TYPE *object)
Definition bdlar_refdatautil.h:93
Definition bdlar_typecategory.h:154