Google Cloud C++ Client  2.7.0
C++ Client Library for Google Cloud Platform
Namespaces | Macros | Functions
version.h File Reference
#include "google/cloud/internal/attributes.h"
#include "google/cloud/internal/port_platform.h"
#include "google/cloud/internal/version_info.h"
#include <string>

Go to the source code of this file.

Namespaces

 google
 
 google::cloud
 Contains all the Google Cloud C++ Library APIs.
 

Macros

#define GOOGLE_CLOUD_CPP_VCONCAT(Ma, Mi, Pa)   v##Ma##_##Mi##_##Pa
 
#define GOOGLE_CLOUD_CPP_VEVAL(Ma, Mi, Pa)   GOOGLE_CLOUD_CPP_VCONCAT(Ma, Mi, Pa)
 
#define GOOGLE_CLOUD_CPP_NS
 
#define GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN    inline namespace GOOGLE_CLOUD_CPP_NS {
 Versioned inline namespace that users should generally avoid spelling. More...
 
#define GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END    } /* namespace GOOGLE_CLOUD_CPP_NS */
 
#define GOOGLE_CLOUD_CPP_GENERATED_NS   GOOGLE_CLOUD_CPP_NS
 

Functions

constexpr int google::cloud::version_major ()
 The Google Cloud C++ Client major version. More...
 
constexpr int google::cloud::version_minor ()
 The Google Cloud C++ Client minor version. More...
 
constexpr int google::cloud::version_patch ()
 The Google Cloud C++ Client patch version. More...
 
constexpr char const * google::cloud::version_pre_release ()
 The Google Cloud C++ Client pre-release version. More...
 
constexpr int google::cloud::version ()
 A single integer representing the Major/Minor/Patch version. More...
 
std::string google::cloud::version_string ()
 The version as a string, in MAJOR.MINOR.PATCH[-PRE][+gitrev] format. More...
 

Macro Definition Documentation

◆ GOOGLE_CLOUD_CPP_GENERATED_NS

#define GOOGLE_CLOUD_CPP_GENERATED_NS   GOOGLE_CLOUD_CPP_NS

Definition at line 51 of file version.h.

◆ GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN

#define GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN    inline namespace GOOGLE_CLOUD_CPP_NS {

Versioned inline namespace that users should generally avoid spelling.

The actual inline namespace name will change with each release, and if you use it your code will be tightly coupled to a specific release. Omitting the inline namespace name will make upgrading to newer releases easier.

However, applications may need to link multiple versions of the Google Cloud C++ Libraries, for example, if they link a library that uses an older version of the libraries than they do. This namespace is inlined, so applications can use google::cloud::Foo in their source, but the symbols are versioned, i.e., the symbol becomes google::cloud::vXYZ::Foo.

Definition at line 43 of file version.h.

◆ GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END

#define GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END    } /* namespace GOOGLE_CLOUD_CPP_NS */

Definition at line 45 of file version.h.

◆ GOOGLE_CLOUD_CPP_NS

#define GOOGLE_CLOUD_CPP_NS
Value:
GOOGLE_CLOUD_CPP_VEVAL(GOOGLE_CLOUD_CPP_VERSION_MAJOR, \
GOOGLE_CLOUD_CPP_VERSION_MINOR, \
GOOGLE_CLOUD_CPP_VERSION_PATCH)
#define GOOGLE_CLOUD_CPP_VEVAL(Ma, Mi, Pa)
Definition: version.h:24

Definition at line 25 of file version.h.

◆ GOOGLE_CLOUD_CPP_VCONCAT

#define GOOGLE_CLOUD_CPP_VCONCAT (   Ma,
  Mi,
  Pa 
)    v##Ma##_##Mi##_##Pa

Definition at line 23 of file version.h.

◆ GOOGLE_CLOUD_CPP_VEVAL

#define GOOGLE_CLOUD_CPP_VEVAL (   Ma,
  Mi,
  Pa 
)    GOOGLE_CLOUD_CPP_VCONCAT(Ma, Mi, Pa)

Definition at line 24 of file version.h.