8#ifndef INCLUDED_BALCL_OPTIONVALUE
9#define INCLUDED_BALCL_OPTIONVALUE
268#include <balscm_version.h>
290#include <bsl_iosfwd.h>
291#include <bsl_string.h>
292#include <bsl_vector.h>
338 template <
class TYPE>
339 bool isType(
const TYPE&)
const;
355 bsl::ostream&
print(bsl::ostream& stream,
357 int spacesPerLevel = 4)
const;
564 template <
class TYPE>
565 void set(
const TYPE& value);
584 template <
class TYPE>
618 template <
class TYPE>
619 const TYPE&
the()
const;
646 bsl::ostream&
print(bsl::ostream& stream,
648 int spacesPerLevel = 4)
const;
704: d_value(basicAllocator)
711: d_value(basicAllocator)
719: d_value(value, basicAllocator)
726: d_value(value, basicAllocator)
733: d_value(value, basicAllocator)
740: d_value(value, basicAllocator)
747: d_value(value, basicAllocator)
754: d_value(value, basicAllocator)
769: d_value(value, basicAllocator)
776: d_value(value, basicAllocator)
783: d_value(value, basicAllocator)
790: d_value(value, basicAllocator)
797: d_value(value, basicAllocator)
805: d_value(value, basicAllocator)
812: d_value(value, basicAllocator)
819: d_value(value, basicAllocator)
826: d_value(value, basicAllocator)
833: d_value(value, basicAllocator)
840: d_value(value, basicAllocator)
847: d_value(original.d_value, basicAllocator)
855 d_value = rhs.d_value;
902 return d_value.
the<TYPE>();
912 d_value.
swap(other.d_value);
936 return d_value.
the<TYPE>();
943 return d_value.getAllocator();
952 return lhs.d_value == rhs.d_value;
963 const OptionValue&
object)
965 return object.print(stream, 0, -1);
974 a.d_value.swap(b.d_value);
1009 int spacesPerLevel)
const
1019 const OptionValue_NullOf& rhs)
1021 return lhs.type() == rhs.type();
1026 const OptionValue_NullOf& rhs)
1035 const OptionValue_NullOf&
object)
1037 return object.print(stream, 0, -1);
Definition balcl_optionvalue.h:312
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
Definition balcl_optionvalue.h:1007
OptionValue_NullOf(OptionType::Enum optionType)
Definition balcl_optionvalue.h:984
BSLMF_NESTED_TRAIT_DECLARATION(OptionValue_NullOf, bslmf::IsBitwiseEqualityComparable)
bool isType(const TYPE &) const
Definition balcl_optionvalue.h:993
BSLMF_NESTED_TRAIT_DECLARATION(OptionValue_NullOf, bdlb::HasPrintMethod)
BSLMF_NESTED_TRAIT_DECLARATION(OptionValue_NullOf, bslmf::IsBitwiseMoveable)
OptionType::Enum type() const
Return the option type of this object.
Definition balcl_optionvalue.h:999
Definition balcl_optionvalue.h:396
friend bool operator==(const OptionValue &, const OptionValue &)
friend void swap(OptionValue &, OptionValue &)
OptionValue & operator=(const OptionValue &rhs)
Definition balcl_optionvalue.h:853
bool isNull() const
Definition balcl_optionvalue.h:923
~OptionValue()=default
Destroy this object.
OptionType::Enum type() const
OptionValue()
Definition balcl_optionvalue.h:697
void reset()
Definition balcl_optionvalue.h:860
bool hasNonVoidType() const
Definition balcl_optionvalue.h:917
void set(const TYPE &value)
Definition balcl_optionvalue.h:867
BSLMF_NESTED_TRAIT_DECLARATION(OptionValue, bdlb::HasPrintMethod)
bsl::ostream & print(bsl::ostream &stream, int level=0, int spacesPerLevel=4) const
void setNull()
Definition balcl_optionvalue.h:877
void setType(OptionType::Enum type)
Definition balcl_optionvalue.h:890
bslma::Allocator * allocator() const
Definition balcl_optionvalue.h:941
BSLMF_NESTED_TRAIT_DECLARATION(OptionValue, bslma::UsesBslmaAllocator)
TYPE & the()
Definition balcl_optionvalue.h:898
void reset()
Definition bdlb_variant.h:7592
bool is() const
Definition bdlb_variant.h:7725
TYPE & createInPlace(ARGS &&... arguments)
Definition bdlb_variant.h:7574
bool isUnset() const
Definition bdlb_variant.h:7732
TYPE & the()
Definition bdlb_variant.h:7637
VariantImp & assign(const TYPE &value)
void swap(VariantImp &other)
Definition bdlb_variant.h:7602
Definition bdlb_variant.h:2389
Definition bdlt_date.h:294
Definition bdlt_datetime.h:330
Definition bdlt_time.h:195
Definition bslstl_string.h:1252
Definition bslma_allocator.h:545
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition balcl_commandline.h:1364
bool operator==(const CommandLine_SchemaData &lhs, const CommandLine_SchemaData &rhs)
bsl::ostream & operator<<(bsl::ostream &stream, const CommandLine &rhs)
void swap(OptionValue &a, OptionValue &b)
bool operator!=(const CommandLine_SchemaData &lhs, const CommandLine_SchemaData &rhs)
bsl::ostream & print(bsl::ostream &stream, const TYPE &object, int level=0, int spacesPerLevel=4)
Definition bdlb_printmethods.h:725
ALLOCATOR const STRING_VIEW_LIKE_TYPE & rhs
Definition bslstl_string.h:3918
ALLOCATOR & lhs
Definition bslstl_string.h:3917
Definition balcl_optiontype.h:288
bsl::vector< bsls::Types::Int64 > Int64Array
Definition balcl_optiontype.h:241
bsls::Types::Int64 Int64
Definition balcl_optiontype.h:233
char Char
Definition balcl_optiontype.h:231
bsl::vector< bdlt::Datetime > DatetimeArray
Definition balcl_optiontype.h:244
bsl::vector< bdlt::Time > TimeArray
Aliases for each of the supported command-line-option types.
Definition balcl_optiontype.h:248
bool Bool
Definition balcl_optiontype.h:230
int Int
Definition balcl_optiontype.h:232
double Double
Definition balcl_optiontype.h:234
bsl::vector< bsl::string > StringArray
Definition balcl_optiontype.h:243
Enum
Definition balcl_optiontype.h:250
@ e_VOID
Definition balcl_optiontype.h:252
Definition bdlb_printmethods.h:306
Definition bslma_usesbslmaallocator.h:344
Definition bslmf_isbitwiseequalitycomparable.h:500
Definition bslmf_isbitwisemoveable.h:718
long long Int64
Definition bsls_types.h:134