Elements  6.2
A C++ base framework for the Euclid Software.
ClassExample.cpp
Go to the documentation of this file.
1 
23 
24 #include <cmath> // for std::abs
25 #include <cstdint> // for std::int64_t
26 #include <memory> // for unique_ptr
27 #include <string> // for string
28 #include <vector> // for vector
29 
31 #include "ElementsKernel/Unused.h"
32 
33 using std::vector;
34 
35 namespace Elements {
36 namespace Examples {
37 
38 const std::string ClassExample::s_static_string = "This is a static field example";
39 
40 double ClassExample::fundamentalTypeMethod(const double input_variable) const {
41  return input_variable;
42 }
43 
44 /*
45  * This is a silly example just to have a method throwing an exception
46  */
47 double ClassExample::divideNumbers(const double first, const double second) const {
48  double tolerance = 1e-12;
49  if (std::abs(second) < tolerance) {
50  throw Elements::Exception() << "Dividing by " << second << " exception in ClassExample::divideNumbers(...)";
51  }
52  return first / second;
53 }
54 
56  ELEMENTS_UNUSED auto vect_size = vector_unique_ptr->size();
57 }
58 
59 void ClassExample::passingObjectInGeneral(const vector<double>& input_object) const {
60  ELEMENTS_UNUSED auto object_size = input_object.size();
61 }
62 
63 ClassExample ClassExample::factoryMethod(const std::int64_t source_id, const double ra) {
64  return ClassExample{source_id, ra};
65 }
66 
67 } // namespace Examples
68 } // namespace Elements
std::string
STL class.
Elements::Examples::ClassExample::factoryMethod
static ClassExample factoryMethod(const std::int64_t source_id, const double ra)
Example factory method.
Definition: ClassExample.cpp:63
std::vector
STL class.
std::vector::size
T size(T... args)
Elements::Examples::ClassExample::s_static_string
static const std::string s_static_string
An example of a static string.
Definition: ClassExample.h:194
Elements::Kernel::Units::second
constexpr double second
Definition: SystemOfUnits.h:107
Exception.h
defines the base Elements exception class
Elements::Exception
Elements base exception class.
Definition: Exception.h:47
std::int64_t
ClassExample.h
Elements::Examples::ClassExample::divideNumbers
double divideNumbers(const double first, const double second) const
Divide two double variables.
Definition: ClassExample.cpp:47
Elements::Examples::ClassExample::passingUniquePointer
void passingUniquePointer(std::unique_ptr< std::vector< double >> vector_unique_ptr) const
Example method with a unique pointer argument.
Definition: ClassExample.cpp:55
Elements::Examples::ClassExample::fundamentalTypeMethod
double fundamentalTypeMethod(const double input_variable) const
Simple method example.
Definition: ClassExample.cpp:40
Elements::Examples::ClassExample::passingObjectInGeneral
void passingObjectInGeneral(const std::vector< double > &input_object) const
Example method taking an object in input.
Definition: ClassExample.cpp:59
Unused.h
Macro to silence unused variables warnings from the compiler.
std::unique_ptr
STL class.
Elements::Examples::ClassExample
An class example.
Definition: ClassExample.h:59
Elements::Kernel::Units::e
constexpr double e
The base of the natural logarithm .
Definition: MathConstants.h:51
ELEMENTS_UNUSED
#define ELEMENTS_UNUSED
Definition: Unused.h:39
Elements
Definition: callBackExample.h:35