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