A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cloud.google.com/cpp/docs/reference/common/2.28.0/classgoogle_1_1cloud_1_1Options.html below:

Class Options (2.28.0) | C++ Client Libraries

Skip to main content Class Options (2.28.0)

Stay organized with collections Save and categorize content based on your preferences.

A class that holds option structs indexed by their type.

An "Option" is any struct that has a public Type member typedef. By convention they are named like "FooOption". Each library (e.g., spanner, storage) may define their own set of options. Additionally, there are common options defined that many libraries may use. All these options may be set in a single Options instance, and each library will look at the options that it needs.

Here's an overview of this class's interface, but see the method documentation below for details.

Example:
struct FooOption {
  using Type = int;
};
struct BarOption {
  using Type = std::set<std::string>;
};
...
Options opts;

assert(opts.get<FooOption>() == 0);
opts.set<FooOption>(42);
assert(opts.get<FooOption>() == 42);

// Inserts two elements directly into the BarOption's std::set.
opts.lookup<BarOption>().insert("hello");
opts.lookup<BarOption>().insert("world");

std::set<std::string> const& bar = opts.get<BarOption>();
assert(bar == std::set<std::string>{"hello", "world"});
Constructors Options()

Constructs an empty instance.

Options(Options const &) Parameter Name Description rhs Options const &
Options(Options &&) Parameter Name Description rhs Options &&
Operators operator=(Options const &) Parameter Name Description rhs Options const &
Returns Type Description Options & operator=(Options &&) Parameter Name Description rhs Options &&
Returns Type Description Options & Functions set(ValueTypeT< T >) &

Sets option T to the value v and returns a reference to *this.

struct FooOption {
  using Type = int;
};
auto opts = Options{};
opts.set<FooOption>(123);
Parameters Name Description v ValueTypeT< T >

the value to set the option T

typename T

the option type

Returns Type Description Options & set(ValueTypeT< T >) &&

Sets option T to the value v and returns a reference to *this.

struct FooOption {
  using Type = int;
};
auto opts = Options{}.set<FooOption>(123);
Parameters Name Description v ValueTypeT< T >

the value to set the option T

typename T

the option type

Returns Type Description Options && has() const

Returns true IFF an option with type T exists.

Parameter Name Description typename T

the option type

Returns Type Description bool unset()

Erases the option specified by the type T.

Parameter Name Description typename T

the option type

Returns Type Description void get() const

Returns a reference to the value for T, or a value-initialized default if T was not set.

This method will always return a reference to a valid value of the correct type for option T, whether or not T has actually been set. Use has<T>() to check whether or not the option has been set.

struct FooOption {
  using Type = std::set<std::string>;
};
Options opts;
std::set<std::string> const& x = opts.get<FooOption>();
assert(x.empty());
assert(!x.has<FooOption>());

opts.set<FooOption>({"foo"});
assert(opts.get<FooOption>().size() == 1);
Parameter Name Description typename T

the option type

Returns Type Description ValueTypeT< T > const & lookup(ValueTypeT< T >)

Returns a reference to the value for option T, setting the value to init_value if necessary.

struct BigOption {
  using Type = std::set<std::string>;
};
Options opts;
std::set<std::string>& x = opts.lookup<BigOption>();
assert(x.empty());

x.insert("foo");
opts.lookup<BigOption>().insert("bar");
assert(x.size() == 2);
Parameters Name Description value ValueTypeT< T >

the initial value to use if T is not set (optional)

typename T

the option type

Returns Type Description ValueTypeT< T > &

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-08-14 UTC.

[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["The document details the `Options` class, which manages a collection of option structs indexed by their type within a C++ library."],["The `Options` class offers methods to `set`, `has`, `unset`, `get`, and `lookup` options, enabling flexible management of library settings."],["The `get` method provides a reference to an option's value, returning a default-initialized value if the option hasn't been set, and the `lookup` method will return a reference to a value, and will initialize the value if not set."],["The document covers constructor and operator overloads for `Options`, along with detailed explanations of each function's purpose, parameters, and return values."],["The document lists different versions of the classes, ranging from version 2.28.0 to 2.36.0, as well as the latest release candidate version, 2.37.0-rc."]]],[]]


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4