Elements 6.3.1
A C++ base framework for the Euclid Software.
Loading...
Searching...
No Matches
Module.tpp
Go to the documentation of this file.
1
21// IWYU pragma: private, include "ElementsKernel/Module.h"
22
23#ifndef ELEMENTSKERNEL_ELEMENTSKERNEL_MODULE_IMPL_
24#error "This file should not be included directly! Use ElementsKernel/Module.h instead"
25#else
26
27#include <cstdint> // for uint_least64_t
28#include <ostream> // for operator<<, basic_ostream, endl, ostream
29#include <string> // for char_traits, operator<<, string
30
31#include "ThisElementsModule.h" // for THIS_MODULE_MAJOR_VERSION, ...
32
33namespace Elements {
34struct Module;
35}
36
37namespace Elements {
38
40 return THIS_MODULE_NAME_STRING;
41}
42
44 return THIS_MODULE_VERSION_STRING;
45}
47 return THIS_MODULE_VERSION;
48}
50 return THIS_MODULE_MAJOR_VERSION;
51}
53 return THIS_MODULE_MINOR_VERSION;
54}
55
57 return THIS_MODULE_PATCH_VERSION;
58}
59
60inline std::ostream& operator<<(std::ostream& stream, const Module& m) {
61
62 stream << "Name: " << m.name() << std::endl;
63 stream << "Version String: " << m.versionString() << std::endl;
64 stream << "Version: " << m.version() << std::endl;
65 stream << "Major Version: " << m.majorVersion() << std::endl;
66 stream << "Minor Version: " << m.minorVersion() << std::endl;
67 stream << "Patch Version: " << m.patchVersion() << std::endl;
68
69 return stream;
70}
71
72} // namespace Elements
73
74#endif // ELEMENTSKERNEL_ELEMENTSKERNEL_MODULE_IMPL_
T endl(T... args)
ELEMENTS_API std::ostream & operator<<(std::ostream &, const Environment::Variable &)
static std::uint_least64_t majorVersion()
static std::uint_least64_t version()
static std::uint_least64_t minorVersion()
static std::string name()
static std::string versionString()
static std::uint_least64_t patchVersion()