title: An easy to initialize maintain and use class arrays of const char*?
body: <p>I have an external API function that accepts (<code>const char* const*</code>) as an argument. I need to come up with an easy way to create such arrays in my class (there are many arrays and function calls), initialise these array some time after a class instance is initialized. I'm also looking for a clean one line syntax for initializing these arrays.</p>
  
  <p>I would be happy with the code below, except the static variable is not visible outside the function:</p>
  
  <pre><code>class myClass
  {
  public:
      template&lt;typename... Ts&gt; void SetVar_RequiredExtensions(Ts... args) {
          const int size = sizeof...(args);
          static char RequiredExtensions[size][MAX_SIZE] = {args...};
      }
      template&lt;typename... Ts&gt; void SetVar_RequiredDevicenames(Ts... args) {
          const int size = sizeof...(args);
          static char RequiredDevicenames[size][MAX_SIZE] = {args...};
      }
  }
  
  // usage
  
  myClass mc;
  ...
  mc.SetVar_RequiredExtensions( "Extension one", "Extension two", ... );
  mc.SetVar_RequiredDevicenames( "Name one", "Name two", ... );
  ...
  
  // const char* const*
  
  externalAPIfunctionCall(mc.RequiredExtensions); 
  externalAPIfunctionCall(mc.RequiredDevicenames);
  ...
  </code></pre>
  
  <p>Basically, I'm looking for something like:</p>
  
  <pre><code>mc.whateverThatReflectsVariableName "Extension one", "Extension two", ... ;
  externalAPIfunctionCall(mc.whateverThatReflectsVariableName); 
  </code></pre>
  
  <p>I don't want to use strings and then convert them into <code>char*</code> on the fly. </p>