.. title:: clang-tidy - fuchsia-statically-constructed-objects

fuchsia-statically-constructed-objects
======================================

Warns if global, non-trivial objects with static storage are constructed, unless 
the object is statically initialized with a ``constexpr`` constructor or has no 
explicit constructor.

For example:

.. code-block:: c++

  class A {};

  class B {
  public:
    B(int Val) : Val(Val) {}
  private:
    int Val;
  };

  class C {
  public:
    C(int Val) : Val(Val) {}
    constexpr C() : Val(0) {}

  private:
    int Val;
  };

  static A a;         // No warning, as there is no explicit constructor
  static C c(0);      // No warning, as constructor is constexpr

  static B b(0);      // Warning, as constructor is not constexpr
  static C c2(0, 1);  // Warning, as constructor is not constexpr
  
  static int i;       // No warning, as it is trivial
  
  extern int get_i();
  static C(get_i())   // Warning, as the constructor is dynamically initialized

See the features disallowed in Fuchsia at https://fuchsia.googlesource.com/zircon/+/master/docs/cxx.md
