.. title:: clang-tidy - modernize-avoid-c-arrays

modernize-avoid-c-arrays
========================

`cppcoreguidelines-avoid-c-arrays` redirects here as an alias for this check.

`hicpp-avoid-c-arrays` redirects here as an alias for this check.

Finds C-style array types and recommend to use ``std::array<>`` /
``std::vector<>``. All types of C arrays are diagnosed.

However, fix-it are potentially dangerous in header files and are therefore not
emitted right now.

.. code:: c++

  int a[] = {1, 2}; // warning: do not declare C-style arrays, use std::array<> instead

  int b[1]; // warning: do not declare C-style arrays, use std::array<> instead

  void foo() {
    int c[b[0]]; // warning: do not declare C VLA arrays, use std::vector<> instead
  }

  template <typename T, int Size>
  class array {
    T d[Size]; // warning: do not declare C-style arrays, use std::array<> instead

    int e[1]; // warning: do not declare C-style arrays, use std::array<> instead
  };

  array<int[4], 2> d; // warning: do not declare C-style arrays, use std::array<> instead

  using k = int[4]; // warning: do not declare C-style arrays, use std::array<> instead


However, the ``extern "C"`` code is ignored, since it is common to share
such headers between C code, and C++ code.

.. code:: c++

  // Some header
  extern "C" {

  int f[] = {1, 2}; // not diagnosed

  int j[1]; // not diagnosed

  inline void bar() {
    {
      int j[j[0]]; // not diagnosed
    }
  }

  }

Similarly, the ``main()`` function is ignored. Its second and third parameters
can be either ``char* argv[]`` or ``char** argv``, but cannot be
``std::array<>``.
