BDE 4.39.x Production Release
Loading...
Searching...
No Matches
s_baltst_mysequencewithchoice.h
Go to the documentation of this file.
1/// @file s_baltst_mysequencewithchoice.h
2///
3/// The content of this file has been pre-processed for Doxygen.
4///
5
6
7// s_baltst_mysequencewithchoice.h *DO NOT EDIT* @generated -*-C++-*-
8#ifndef INCLUDED_S_BALTST_MYSEQUENCEWITHCHOICE
9#define INCLUDED_S_BALTST_MYSEQUENCEWITHCHOICE
10
11#include <bsls_ident.h>
12BSLS_IDENT_RCSID(s_baltst_mysequencewithchoice_h, "$Id$ $CSID$")
14
15/// @defgroup s_baltst_mysequencewithchoice s_baltst_mysequencewithchoice
16/// @brief Provide value-semantic attribute classes
17/// @addtogroup Standalones
18/// @{
19/// @addtogroup s_baltst
20/// @{
21/// @addtogroup s_baltst_mysequencewithchoice
22/// @{
23///
24/// <h1> Outline </h1>
25/// * <a href="#s_baltst_mysequencewithchoice-purpose"> Purpose</a>
26///
27/// # Purpose {#s_baltst_mysequencewithchoice-purpose}
28/// Provide value-semantic attribute classes
29/// @}
30/** @} */
31/** @} */
32
33/** @addtogroup Standalones
34 * @{
35 */
36/** @addtogroup s_baltst
37 * @{
38 */
39/** @addtogroup s_baltst_mysequencewithchoice
40 * @{
41 */
42
43#include <bslalg_typetraits.h>
44
45#include <bdlat_attributeinfo.h>
46
47#include <bdlat_selectioninfo.h>
48
49#include <bdlat_typetraits.h>
50
51#include <bsls_objectbuffer.h>
52
53#include <bsls_assert.h>
54
55#include <bsl_iosfwd.h>
56#include <bsl_limits.h>
57
58
59
60namespace s_baltst { class MySequenceWithChoiceChoice; }
61namespace s_baltst { class MySequenceWithChoice; }
62namespace s_baltst {
63
64 // ================================
65 // class MySequenceWithChoiceChoice
66 // ================================
67
69
70 // INSTANCE DATA
71 union {
73 };
74
75 int d_selectionId;
76
77 // PRIVATE ACCESSORS
78 bool isEqualTo(const MySequenceWithChoiceChoice& rhs) const;
79
80 public:
81 // TYPES
82
83 enum {
86 };
87
88 enum {
90 };
91
92 enum {
94 };
95
96 // CONSTANTS
97 static const char CLASS_NAME[];
98
100
101 // CLASS METHODS
102
103 /// Return selection information for the selection indicated by the
104 /// specified `id` if the selection exists, and 0 otherwise.
106
107 /// Return selection information for the selection indicated by the
108 /// specified `name` of the specified `nameLength` if the selection
109 /// exists, and 0 otherwise.
111 const char *name,
112 int nameLength);
113
114 // CREATORS
115
116 /// Create an object of type `MySequenceWithChoiceChoice` having the
117 /// default value.
119
120 /// Create an object of type `MySequenceWithChoiceChoice` having the
121 /// value of the specified `original` object.
123
124#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
125 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
126 /// Create an object of type `MySequenceWithChoiceChoice` having the
127 /// value of the specified `original` object. After performing this
128 /// action, the `original` object will be left in a valid, but
129 /// unspecified state.
131#endif
132
133 /// Destroy this object.
135
136 // MANIPULATORS
137
138 /// Assign to this object the value of the specified `rhs` object.
140
141#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
142 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
143 /// Assign to this object the value of the specified `rhs` object.
144 /// After performing this action, the `rhs` object will be left in a
145 /// valid, but unspecified state.
147#endif
148
149 /// Reset this object to the default value (i.e., its value upon default
150 /// construction).
151 void reset();
152
153 /// Set the value of this object to be the default for the selection
154 /// indicated by the specified `selectionId`. Return 0 on success, and
155 /// non-zero value otherwise (i.e., the selection is not found).
157
158 /// Set the value of this object to be the default for the selection
159 /// indicated by the specified `name` of the specified `nameLength`.
160 /// Return 0 on success, and non-zero value otherwise (i.e., the
161 /// selection is not found).
162 int makeSelection(const char *name, int nameLength);
163
164 /// Set the value of this object to be a "ChoiceA" value. Optionally
165 /// specify the `value` of the "ChoiceA". If `value` is not specified,
166 /// the default "ChoiceA" value is used.
168 int& makeChoiceA(int value);
169
170 /// Invoke the specified `manipulator` on the address of the modifiable
171 /// selection, supplying `manipulator` with the corresponding selection
172 /// information structure. Return the value returned from the
173 /// invocation of `manipulator` if this object has a defined selection,
174 /// and -1 otherwise.
175 template <typename t_MANIPULATOR>
176 int manipulateSelection(t_MANIPULATOR& manipulator);
177
178 /// Return a reference to the modifiable "ChoiceA" selection of this
179 /// object if "ChoiceA" is the current selection.
180 ///
181 /// \pre The behavior is undefined unless "ChoiceA" is the selection of this object.
182 int& choiceA();
183
184 // ACCESSORS
185
186 /// Format this object to the specified output `stream` at the
187 /// optionally specified indentation `level` and return a reference to
188 /// the modifiable `stream`. If `level` is specified, optionally
189 /// specify `spacesPerLevel`, the number of spaces per indentation level
190 /// for this and all of its nested objects. Each line is indented by
191 /// the absolute value of `level * spacesPerLevel`. If `level` is
192 /// negative, suppress indentation of the first line. If
193 /// `spacesPerLevel` is negative, suppress line breaks and format the
194 /// entire output on one line. If `stream` is initially invalid, this operation has no effect.
195 ///
196 /// \note Note that a trailing newline is provided
197 /// in multiline mode only.
198 bsl::ostream& print(bsl::ostream& stream,
199 int level = 0,
200 int spacesPerLevel = 4) const;
201
202 /// Return the id of the current selection if the selection is defined,
203 /// and -1 otherwise.
204 int selectionId() const;
205
206 /// Invoke the specified `accessor` on the non-modifiable selection,
207 /// supplying `accessor` with the corresponding selection information
208 /// structure. Return the value returned from the invocation of
209 /// `accessor` if this object has a defined selection, and -1 otherwise.
210 template <typename t_ACCESSOR>
211 int accessSelection(t_ACCESSOR& accessor) const;
212
213 /// Return a reference to the non-modifiable "ChoiceA" selection of this
214 /// object if "ChoiceA" is the current selection.
215 ///
216 /// \pre The behavior is undefined unless "ChoiceA" is the selection of this object.
217 const int& choiceA() const;
218
219 /// Return `true` if the value of this object is a "ChoiceA" value, and
220 /// return `false` otherwise.
221 bool isChoiceAValue() const;
222
223 /// Return `true` if the value of this object is undefined, and `false`
224 /// otherwise.
225 bool isUndefinedValue() const;
226
227 /// Return the symbolic name of the current selection of this object.
228 const char *selectionName() const;
229
230 // HIDDEN FRIENDS
231
232 /// Return `true` if the specified `lhs` and `rhs` objects have the same
233 /// value, and `false` otherwise. Two `MySequenceWithChoiceChoice`
234 /// objects have the same value if either the selections in both objects
235 /// have the same ids and the same values, or both selections are
236 /// undefined.
239 {
240 return lhs.isEqualTo(rhs);
241 }
242
243 /// Return `true` if the specified `lhs` and `rhs` objects do not have
244 /// the same values, as determined by `operator==`, and `false`
245 /// otherwise.
248 {
249 return !(lhs == rhs);
250 }
251
252 /// Format the specified `rhs` to the specified output `stream` and
253 /// return a reference to the modifiable `stream`.
254 friend bsl::ostream& operator<<(bsl::ostream& stream,
256 {
257 return rhs.print(stream, 0, -1);
258 }
259};
260
261} // close package namespace
262
263// TRAITS
264
266
267namespace s_baltst {
268
269 // ==========================
270 // class MySequenceWithChoice
271 // ==========================
272
274
275 // INSTANCE DATA
277
278 public:
279 // TYPES
280 enum {
282 };
283
284 enum {
286 };
287
288 enum {
290 };
291
292 // CONSTANTS
293 static const char CLASS_NAME[];
294
296
297 public:
298 // CLASS METHODS
299
300 /// Return attribute information for the attribute indicated by the
301 /// specified `id` if the attribute exists, and 0 otherwise.
303
304 /// Return attribute information for the attribute indicated by the
305 /// specified `name` of the specified `nameLength` if the attribute
306 /// exists, and 0 otherwise.
308 const char *name,
309 int nameLength);
310
311 // CREATORS
312
313 /// Create an object of type `MySequenceWithChoice` having the default
314 /// value.
316
317
318 // MANIPULATORS
319
320 /// Reset this object to the default value (i.e., its value upon
321 /// default construction).
322 void reset();
323
324 /// Invoke the specified `manipulator` sequentially on the address of
325 /// each (modifiable) attribute of this object, supplying `manipulator`
326 /// with the corresponding attribute information structure until such
327 /// invocation returns a non-zero value. Return the value from the
328 /// last invocation of `manipulator` (i.e., the invocation that
329 /// terminated the sequence).
330 template <typename t_MANIPULATOR>
331 int manipulateAttributes(t_MANIPULATOR& manipulator);
332
333 /// Invoke the specified `manipulator` on the address of
334 /// the (modifiable) attribute indicated by the specified `id`,
335 /// supplying `manipulator` with the corresponding attribute
336 /// information structure. Return the value returned from the
337 /// invocation of `manipulator` if `id` identifies an attribute of this
338 /// class, and -1 otherwise.
339 template <typename t_MANIPULATOR>
340 int manipulateAttribute(t_MANIPULATOR& manipulator, int id);
341
342 /// Invoke the specified `manipulator` on the address of
343 /// the (modifiable) attribute indicated by the specified `name` of the
344 /// specified `nameLength`, supplying `manipulator` with the
345 /// corresponding attribute information structure. Return the value
346 /// returned from the invocation of `manipulator` if `name` identifies
347 /// an attribute of this class, and -1 otherwise.
348 template <typename t_MANIPULATOR>
349 int manipulateAttribute(t_MANIPULATOR& manipulator,
350 const char *name,
351 int nameLength);
352
353 /// Return a reference to the modifiable "Mode" attribute of this
354 /// object.
356
357 // ACCESSORS
358
359 /// Format this object to the specified output `stream` at the
360 /// optionally specified indentation `level` and return a reference to
361 /// the modifiable `stream`. If `level` is specified, optionally
362 /// specify `spacesPerLevel`, the number of spaces per indentation level
363 /// for this and all of its nested objects. Each line is indented by
364 /// the absolute value of `level * spacesPerLevel`. If `level` is
365 /// negative, suppress indentation of the first line. If
366 /// `spacesPerLevel` is negative, suppress line breaks and format the
367 /// entire output on one line. If `stream` is initially invalid, this operation has no effect.
368 ///
369 /// \note Note that a trailing newline is provided
370 /// in multiline mode only.
371 bsl::ostream& print(bsl::ostream& stream,
372 int level = 0,
373 int spacesPerLevel = 4) const;
374
375 /// Invoke the specified `accessor` sequentially on each
376 /// (non-modifiable) attribute of this object, supplying `accessor`
377 /// with the corresponding attribute information structure until such
378 /// invocation returns a non-zero value. Return the value from the
379 /// last invocation of `accessor` (i.e., the invocation that terminated
380 /// the sequence).
381 template <typename t_ACCESSOR>
382 int accessAttributes(t_ACCESSOR& accessor) const;
383
384 /// Invoke the specified `accessor` on the (non-modifiable) attribute
385 /// of this object indicated by the specified `id`, supplying `accessor`
386 /// with the corresponding attribute information structure. Return the
387 /// value returned from the invocation of `accessor` if `id` identifies
388 /// an attribute of this class, and -1 otherwise.
389 template <typename t_ACCESSOR>
390 int accessAttribute(t_ACCESSOR& accessor, int id) const;
391
392 /// Invoke the specified `accessor` on the (non-modifiable) attribute
393 /// of this object indicated by the specified `name` of the specified
394 /// `nameLength`, supplying `accessor` with the corresponding attribute
395 /// information structure. Return the value returned from the
396 /// invocation of `accessor` if `name` identifies an attribute of this
397 /// class, and -1 otherwise.
398 template <typename t_ACCESSOR>
399 int accessAttribute(t_ACCESSOR& accessor,
400 const char *name,
401 int nameLength) const;
402
403 /// Return a reference offering non-modifiable access to the "Mode"
404 /// attribute of this object.
405 const MySequenceWithChoiceChoice& mode() const;
406
407 // HIDDEN FRIENDS
408
409 /// Return `true` if the specified `lhs` and `rhs` attribute objects
410 /// have the same value, and `false` otherwise. Two attribute objects
411 /// have the same value if each respective attribute has the same value.
412 friend bool operator==(const MySequenceWithChoice& lhs,
413 const MySequenceWithChoice& rhs)
414 {
415 return lhs.mode() == rhs.mode();
416 }
417
418 /// Returns `!(lhs == rhs)`
419 friend bool operator!=(const MySequenceWithChoice& lhs,
420 const MySequenceWithChoice& rhs)
421 {
422 return !(lhs == rhs);
423 }
424
425 /// Format the specified `rhs` to the specified output `stream` and
426 /// return a reference to the modifiable `stream`.
427 friend bsl::ostream& operator<<(bsl::ostream& stream,
428 const MySequenceWithChoice& rhs)
429 {
430 return rhs.print(stream, 0, -1);
431 }
432};
433
434} // close package namespace
435
436// TRAITS
437
439template <>
440struct bdlat_UsesDefaultValueFlag<s_baltst::MySequenceWithChoice> : bsl::true_type {};
441
442// ============================================================================
443// INLINE DEFINITIONS
444// ============================================================================
445
446namespace s_baltst {
447
448 // --------------------------------
449 // class MySequenceWithChoiceChoice
450 // --------------------------------
451
452// CLASS METHODS
453// PRIVATE ACCESSORS
454inline
455bool MySequenceWithChoiceChoice::isEqualTo(const MySequenceWithChoiceChoice& rhs) const
456{
457 typedef MySequenceWithChoiceChoice Class;
458 if (this->selectionId() == rhs.selectionId()) {
459 switch (rhs.selectionId()) {
460 case Class::SELECTION_ID_CHOICE_A:
461 return this->choiceA() == rhs.choiceA();
462 default:
463 BSLS_ASSERT(Class::SELECTION_ID_UNDEFINED == rhs.selectionId());
464 return true;
465 }
466 }
467 else {
468 return false;
469 }
470}
471
472// CREATORS
473inline
475: d_selectionId(SELECTION_ID_UNDEFINED)
476{
477}
478
479inline
484
485// MANIPULATORS
486template <typename t_MANIPULATOR>
488{
489 switch (d_selectionId) {
491 return manipulator(&d_choiceA.object(),
493 default:
495 return -1;
496 }
497}
498
499inline
501{
502 BSLS_ASSERT(SELECTION_ID_CHOICE_A == d_selectionId);
503 return d_choiceA.object();
504}
505
506// ACCESSORS
507inline
509{
510 return d_selectionId;
511}
512
513template <typename t_ACCESSOR>
514int MySequenceWithChoiceChoice::accessSelection(t_ACCESSOR& accessor) const
515{
516 switch (d_selectionId) {
518 return accessor(d_choiceA.object(),
520 default:
521 BSLS_ASSERT(SELECTION_ID_UNDEFINED == d_selectionId);
522 return -1;
523 }
524}
525
526inline
528{
529 BSLS_ASSERT(SELECTION_ID_CHOICE_A == d_selectionId);
530 return d_choiceA.object();
531}
532
533inline
535{
536 return SELECTION_ID_CHOICE_A == d_selectionId;
537}
538
539inline
541{
542 return SELECTION_ID_UNDEFINED == d_selectionId;
543}
544
545
546 // --------------------------
547 // class MySequenceWithChoice
548 // --------------------------
549
550// CLASS METHODS
551// MANIPULATORS
552template <typename t_MANIPULATOR>
553int MySequenceWithChoice::manipulateAttributes(t_MANIPULATOR& manipulator)
554{
555 int ret;
556
557 ret = manipulator(&d_mode, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_MODE]);
558 if (ret) {
559 return ret;
560 }
561
562 return 0;
563}
564
565template <typename t_MANIPULATOR>
566int MySequenceWithChoice::manipulateAttribute(t_MANIPULATOR& manipulator, int id)
567{
568 enum { NOT_FOUND = -1 };
569
570 switch (id) {
571 case ATTRIBUTE_ID_MODE: {
572 return manipulator(&d_mode, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_MODE]);
573 }
574 default:
575 return NOT_FOUND;
576 }
577}
578
579template <typename t_MANIPULATOR>
581 t_MANIPULATOR& manipulator,
582 const char *name,
583 int nameLength)
584{
585 enum { NOT_FOUND = -1 };
586
587 const bdlat_AttributeInfo *attributeInfo =
588 lookupAttributeInfo(name, nameLength);
589 if (0 == attributeInfo) {
590 return NOT_FOUND;
591 }
592
593 return manipulateAttribute(manipulator, attributeInfo->d_id);
594}
595
596inline
601
602// ACCESSORS
603template <typename t_ACCESSOR>
604int MySequenceWithChoice::accessAttributes(t_ACCESSOR& accessor) const
605{
606 int ret;
607
608 ret = accessor(d_mode, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_MODE]);
609 if (ret) {
610 return ret;
611 }
612
613 return 0;
614}
615
616template <typename t_ACCESSOR>
617int MySequenceWithChoice::accessAttribute(t_ACCESSOR& accessor, int id) const
618{
619 enum { NOT_FOUND = -1 };
620
621 switch (id) {
622 case ATTRIBUTE_ID_MODE: {
623 return accessor(d_mode, ATTRIBUTE_INFO_ARRAY[ATTRIBUTE_INDEX_MODE]);
624 }
625 default:
626 return NOT_FOUND;
627 }
628}
629
630template <typename t_ACCESSOR>
632 t_ACCESSOR& accessor,
633 const char *name,
634 int nameLength) const
635{
636 enum { NOT_FOUND = -1 };
637
638 const bdlat_AttributeInfo *attributeInfo =
639 lookupAttributeInfo(name, nameLength);
640 if (0 == attributeInfo) {
641 return NOT_FOUND;
642 }
643
644 return accessAttribute(accessor, attributeInfo->d_id);
645}
646
647inline
649{
650 return d_mode;
651}
652
653} // close package namespace
654
655// FREE FUNCTIONS
656
657
658#endif
659
660// GENERATED BY BLP_BAS_CODEGEN_2025.08.21
661// USING bas_codegen.pl s_baltst_mysequencewithchoice.xsd --mode msg --includedir . --msgComponent mysequencewithchoice --noRecurse --noExternalization --noHashSupport --noAggregateConversion
662// ----------------------------------------------------------------------------
663// NOTICE:
664// Copyright 2025 Bloomberg Finance L.P. All rights reserved.
665// Property of Bloomberg Finance L.P. (BFLP)
666// This software is made available solely pursuant to the
667// terms of a BFLP license agreement which governs its use.
668// ------------------------------- END-OF-FILE --------------------------------
669
670/** @} */
671/** @} */
672/** @} */
Definition s_baltst_mysequencewithchoice.h:68
const char * selectionName() const
Return the symbolic name of the current selection of this object.
static const bdlat_SelectionInfo * lookupSelectionInfo(const char *name, int nameLength)
@ NUM_SELECTIONS
Definition s_baltst_mysequencewithchoice.h:89
int makeSelection(const char *name, int nameLength)
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithChoiceChoice &rhs)
Definition s_baltst_mysequencewithchoice.h:254
friend bool operator!=(const MySequenceWithChoiceChoice &lhs, const MySequenceWithChoiceChoice &rhs)
Definition s_baltst_mysequencewithchoice.h:246
int accessSelection(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithchoice.h:514
MySequenceWithChoiceChoice & operator=(const MySequenceWithChoiceChoice &rhs)
Assign to this object the value of the specified rhs object.
bool isUndefinedValue() const
Definition s_baltst_mysequencewithchoice.h:540
static const bdlat_SelectionInfo SELECTION_INFO_ARRAY[]
Definition s_baltst_mysequencewithchoice.h:99
~MySequenceWithChoiceChoice()
Destroy this object.
Definition s_baltst_mysequencewithchoice.h:480
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
bsls::ObjectBuffer< int > d_choiceA
Definition s_baltst_mysequencewithchoice.h:72
static const bdlat_SelectionInfo * lookupSelectionInfo(int id)
bool isChoiceAValue() const
Definition s_baltst_mysequencewithchoice.h:534
int makeSelection(int selectionId)
MySequenceWithChoiceChoice(const MySequenceWithChoiceChoice &original)
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithchoice.h:97
friend bool operator==(const MySequenceWithChoiceChoice &lhs, const MySequenceWithChoiceChoice &rhs)
Definition s_baltst_mysequencewithchoice.h:237
@ SELECTION_INDEX_CHOICE_A
Definition s_baltst_mysequencewithchoice.h:93
@ SELECTION_ID_UNDEFINED
Definition s_baltst_mysequencewithchoice.h:84
@ SELECTION_ID_CHOICE_A
Definition s_baltst_mysequencewithchoice.h:85
int & choiceA()
Definition s_baltst_mysequencewithchoice.h:500
MySequenceWithChoiceChoice()
Definition s_baltst_mysequencewithchoice.h:474
int manipulateSelection(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithchoice.h:487
int selectionId() const
Definition s_baltst_mysequencewithchoice.h:508
Definition s_baltst_mysequencewithchoice.h:273
MySequenceWithChoiceChoice & mode()
Definition s_baltst_mysequencewithchoice.h:597
friend bool operator==(const MySequenceWithChoice &lhs, const MySequenceWithChoice &rhs)
Definition s_baltst_mysequencewithchoice.h:412
friend bsl::ostream & operator<<(bsl::ostream &stream, const MySequenceWithChoice &rhs)
Definition s_baltst_mysequencewithchoice.h:427
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
@ NUM_ATTRIBUTES
Definition s_baltst_mysequencewithchoice.h:285
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_mysequencewithchoice.h:295
static const char CLASS_NAME[]
Definition s_baltst_mysequencewithchoice.h:293
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_mysequencewithchoice.h:566
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
@ ATTRIBUTE_ID_MODE
Definition s_baltst_mysequencewithchoice.h:281
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_mysequencewithchoice.h:617
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_mysequencewithchoice.h:553
@ ATTRIBUTE_INDEX_MODE
Definition s_baltst_mysequencewithchoice.h:289
friend bool operator!=(const MySequenceWithChoice &lhs, const MySequenceWithChoice &rhs)
Returns !(lhs == rhs)
Definition s_baltst_mysequencewithchoice.h:419
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_mysequencewithchoice.h:604
#define BDLAT_DECL_CHOICE_WITH_BITWISEMOVEABLE_TRAITS(ClassName)
Definition bdlat_typetraits.h:261
#define BDLAT_DECL_SEQUENCE_WITH_BITWISEMOVEABLE_TRAITS(ClassName)
Definition bdlat_typetraits.h:294
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT_RCSID(tag, str)
BSLS_IDENT_RCSID() - insert ident str (specific to platform/compiler)
Definition bsls_ident.h:244
#define BSLS_IDENT_PRAGMA_ONCE
BSLS_IDENT_PRAGMA_ONCE - macro to avoid multiple inclusion
Definition bsls_ident.h:263
Definition s_baltst_address.h:66
Definition bdlat_attributeinfo.h:139
int d_id
Definition bdlat_attributeinfo.h:142
Definition bdlat_selectioninfo.h:138
Definition bdlat_typetraits.h:146
TYPE & object()
Definition bsls_objectbuffer.h:352