title: Cannot instantiate template with const char * array
body: <p>Need help on below code, very confused on what's wrong.</p>
  
  <pre><code>template&lt;const char* (&amp;ArrayC)[]&gt;
          class TypeDescriptionBase
          {
          public:
              static const auto getType(int index)
              {
                  return getArrayIndex(ArrayC, index);
              }
              template &lt;typename Func&gt;
              static void forEachType(Func&amp;&amp; f)
              {
                  for (const auto&amp; type : ArrayC)
                      f(type);
              }
              static auto findTypeIndex(const CString&amp; strType)
              {
                  auto it = std::find(std::begin(ArrayC), std::end(ArrayC), strType);
                  return static_cast&lt;int&gt;(it == std::end(ArrayC) ? 0 : std::distance(std::begin(ArrayC), it));
              }
          };
  
          using advancedTypes = TypeDescriptionBase&lt;{ "TypeA", "TpyeB" , "TpyeC", "TpyeD", "TpyeE", "TpyeF", "TpyeG", "TpyeH", "TpyeI", "TpyeJ"}&gt;;
  </code></pre>
  
  <p>I got error - "expected an expression" with the last line around beginning of const char* array. I am using VS2017 for my development.</p>