// This is a dummy file #ifndef THIS_FILE #define THIS_FILE #include #include #include "Eigen/Dense" #include #include "ACTS/Surfaces/Surface.h" #include "cmath" namespace myNS { template class Base { public: virtual ~Base() = default; // this a virtual method virtual T foo(const Args &... args) const = 0; private: template , int> = 0> bool bar() const { return true; } }; class D : public Base { public: D(float a, int b, bool c, bool d) : m_a(a), m_b(b), m_c(c), m_d(d) { if (m_a) { // do some stuff // ... } else { // do some other stuff; } switch (b) { case 1: std::cout << "b = " << b << std::endl; break; default: std::cout << "default" << std::endl; } m_a = d ? 1000 * m_a : -1; } virtual float foo(const int &, const bool &, const bool &) const final; private: float m_a; int m_b; bool m_c; bool m_d; }; float D::foo(const int &n, const bool &b1, const bool &b2) const { float r = 0; for (unsigned int i = 0; i < n; ++i) { r += i * r; } while (b1) { r /= (3 + pwo(r, 2)) + (b2 ? -1 : 1); } return r; } } // end of namespace myNS #endif // THIS_FILE