[#BloombergLP-ball-Attribute] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/ball.adoc[ball]::Attribute :relfileprefix: ../../ :mrdocs: An `Attribute` object contains an attribute name which is not managed and an attribute value which is managed. == Synopsis Declared in `<ball_attribute.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Attribute; ---- == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/Attribute/Value-01.adoc[`Value`] | `Value` is an alias for the attribute type variant. | xref:BloombergLP/ball/Attribute/allocator_type.adoc[`allocator_type`] | This `typedef` is an alias for the allocator used by this object. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/Attribute/2constructor-05.adoc[`Attribute`] [.small]#[constructor]# | Constructors | xref:BloombergLP/ball/Attribute/operator_assign.adoc[`operator=`] | Assign the value of the specified `rhs` object to this object. | xref:BloombergLP/ball/Attribute/get_allocator.adoc[`get_allocator`] | Return the allocator used by this object to supply memory. Note that if no allocator was supplied at construction the default allocator in effect at construction is used. | xref:BloombergLP/ball/Attribute/name.adoc[`name`] | Return the name of this object. | xref:BloombergLP/ball/Attribute/print.adoc[`print`] | Format this object to the specified output `stream` at the (absolute value of) the optionally specified indentation `level` and return a reference to `stream`. If `level` is specified, optionally specify `spacesPerLevel`, the number of spaces per indentation level for this and all of its nested objects. If `level` is negative, suppress indentation of the first line. If `spacesPerLevel` is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by `level`). If `stream` is not valid on entry, this operation has no effect. | xref:BloombergLP/ball/Attribute/setName.adoc[`setName`] | Set the attribute name of this object to the specified (literal) `name`. Note that `name` is not managed by this object and therefore must remain valid while in use by any `Attribute` object. | xref:BloombergLP/ball/Attribute/setValue-078.adoc[`setValue`] | `setValue` overloads | xref:BloombergLP/ball/Attribute/value-06.adoc[`value`] | Return a reference to the non‐modifiable attribute value of this object. | xref:BloombergLP/ball/Attribute/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration<Attribute, UsesBslmaAllocator>`] | Declare that this type uses a `bslma` allocator. |=== == Static Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/Attribute/hash.adoc[`hash`] | Return a hash value calculated from the specified `attribute` using the specified `size` as the number of slots. The hash value is guaranteed to be in the range `[0 .. size ‐ 1]`. The behavior is undefined unless `0 < size`. |=== == Friends [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/ball/operator_lshift-0f.adoc[BloombergLP::ball::operator<<]` | Write the value of the specified `attribute` to the specified `output` stream. Return the specified `output` stream. | `xref:BloombergLP/ball/operator_not_eq-014.adoc[BloombergLP::ball::operator!=]` | Return `true` if the specified `lhs` and `rhs` objects do not have the same value, and `false` otherwise. Two `Attribute` objects do not have the same value if any of their respective names (value, not address), attribute value types, or attribute values differ. | `xref:BloombergLP/ball/operator_eq-03b.adoc[BloombergLP::ball::operator==]` | Return `true` if the specified `lhs` and `rhs` objects have the same value, and `false` otherwise. Two `Attribute` objects have the same value if they have the same name (but not necessarily the identical representation in memory), the same attribute value type, and the same attribute value. |=== == Non-Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/ball/operator_not_eq-036.adoc[`operator!=`] | Return `true` if the specified `lhs` and `rhs` objects do not have the same value, and `false` otherwise. | xref:BloombergLP/ball/operator_eq-021.adoc[`operator==`] | Return `true` if the specified `lhs` and `rhs` objects have the same value, and `false` otherwise. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#