8#ifndef INCLUDED_S_BALTST_SEQUENCEWITHNILONLY
9#define INCLUDED_S_BALTST_SEQUENCEWITHNILONLY
43#include <bslalg_typetraits.h>
59#include <bsl_vector.h>
61#include <bsl_iosfwd.h>
62#include <bsl_limits.h>
66namespace bslma {
class Allocator; }
68namespace s_baltst {
class SequenceWithNilOnly; }
126#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
127 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
150#if defined(BSLS_COMPILERFEATURES_SUPPORT_RVALUE_REFERENCES) \
151 && defined(BSLS_COMPILERFEATURES_SUPPORT_NOEXCEPT)
162 template <
typename t_MANIPULATOR>
171 template <
typename t_MANIPULATOR>
180 template <
typename t_MANIPULATOR>
195 bsl::ostream&
print(bsl::ostream& stream,
197 int spacesPerLevel = 4)
const;
210 template <
typename t_ACCESSOR>
219 template <
typename t_ACCESSOR>
227 template <
typename t_ACCESSOR>
230 int nameLength)
const;
249 return lhs.v() == rhs.v();
256 return !(lhs == rhs);
264 return rhs.print(stream, 0, -1);
286template <
typename t_MANIPULATOR>
299template <
typename t_MANIPULATOR>
302 enum { NOT_FOUND = -1 };
313template <
typename t_MANIPULATOR>
315 t_MANIPULATOR& manipulator,
319 enum { NOT_FOUND = -1 };
323 if (0 == attributeInfo) {
337template <
typename t_ACCESSOR>
350template <
typename t_ACCESSOR>
353 enum { NOT_FOUND = -1 };
364template <
typename t_ACCESSOR>
366 t_ACCESSOR& accessor,
368 int nameLength)
const
370 enum { NOT_FOUND = -1 };
374 if (0 == attributeInfo) {
Definition bslstl_vector.h:1120
Definition bslma_allocator.h:545
Definition s_baltst_sequencewithnilonly.h:75
SequenceWithNilOnly & operator=(const SequenceWithNilOnly &rhs)
@ NUM_ATTRIBUTES
Definition s_baltst_sequencewithnilonly.h:87
int accessAttribute(t_ACCESSOR &accessor, int id) const
Definition s_baltst_sequencewithnilonly.h:351
int manipulateAttribute(t_MANIPULATOR &manipulator, int id)
Definition s_baltst_sequencewithnilonly.h:300
static const bdlat_AttributeInfo * lookupAttributeInfo(int id)
@ ATTRIBUTE_ID_V
Definition s_baltst_sequencewithnilonly.h:83
int accessAttributes(t_ACCESSOR &accessor) const
Definition s_baltst_sequencewithnilonly.h:338
bsl::vector< bdlb::NullableValue< int > > & v()
Definition s_baltst_sequencewithnilonly.h:331
static const bdlat_AttributeInfo ATTRIBUTE_INFO_ARRAY[]
Definition s_baltst_sequencewithnilonly.h:97
friend bool operator!=(const SequenceWithNilOnly &lhs, const SequenceWithNilOnly &rhs)
Definition s_baltst_sequencewithnilonly.h:252
int manipulateAttributes(t_MANIPULATOR &manipulator)
Definition s_baltst_sequencewithnilonly.h:287
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
SequenceWithNilOnly(bslma::Allocator *basicAllocator=0)
SequenceWithNilOnly(const SequenceWithNilOnly &original, bslma::Allocator *basicAllocator=0)
friend bool operator==(const SequenceWithNilOnly &lhs, const SequenceWithNilOnly &rhs)
Definition s_baltst_sequencewithnilonly.h:243
friend bsl::ostream & operator<<(bsl::ostream &stream, const SequenceWithNilOnly &rhs)
Definition s_baltst_sequencewithnilonly.h:259
static const bdlat_AttributeInfo * lookupAttributeInfo(const char *name, int nameLength)
@ ATTRIBUTE_INDEX_V
Definition s_baltst_sequencewithnilonly.h:91
static const char CLASS_NAME[]
Definition s_baltst_sequencewithnilonly.h:95
#define BDLAT_DECL_SEQUENCE_WITH_ALLOCATOR_BITWISEMOVEABLE_TRAITS(ClassName)
Definition bdlat_typetraits.h:301
#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 baljsn_encoder_testtypes.h:76
Definition s_baltst_address.h:66
Definition bdlat_attributeinfo.h:139
int d_id
Definition bdlat_attributeinfo.h:142