title: Forward declaration of a template class c++
body: <p>I saw similar examples, but didn't understand them fully so please don't mark this as duplicate straight away.
  I think there's a simple solution for my problem, and I'm only learning <code>C++</code>.</p>
  
  <p>I want to use:</p>
  
  <pre><code>template&lt;class T, std::size_t N&gt;
  class arnas_array {
  //a copy of std:array functionality, basically, here.
  };
  </code></pre>
  
  <p>in another class header, another file, example:</p>
  
  <pre><code>class options_databaze {
  
  public:
  
      struct options_to_save{
          arnas_array&lt;char, 123&gt; option_name;
          //char option_name[103];
          int * option_value_pointer; 
      };
  
  
  };
  </code></pre>
  
  <p>And I can't get it to work.
  Forward declaration like this won't work:</p>
  
  <pre><code>template&lt;class T, std::size_t N&gt;
  class arnas_array;
  </code></pre>
  
  <p>I don't know much about this problem, first time I'm stuck here, any examples are gold.</p>
  
  <pre><code>error C2079: 'options_databaze::options_to_save::option_name' uses undefined class 'arnas_array&lt;char,123&gt;'
  </code></pre>