title: GTest - run multiple testcase on different parameters
body: <p>Note: I know this question was asked in different ways, but I couldn't solve it based on my restrictions:</p>
  
  <ol>
  <li>I am using google test version <code>1.7</code></li>
  <li>Compiling in Visual studio 2010, with platform toolset V100</li>
  </ol>
  
  <p>I am writing google test for a library I have created.</p>
  
  <p>In my library, I have 3 structs, as follows:</p>
  
  <pre><code>struct utc_clock{ .... }
  struct system_clock {....}
  struct cpu_clock {....}
  </code></pre>
  
  <p>moreover, I have another class that uses them as <strong>template</strong> parameters.</p>
  
  <p>In my test case, I do as follows:</p>
  
  <pre><code>TEST(MyTest, testImportantThings)
  {
      time_point&lt;utc_clock&gt; tp = utc_clock::now();
  
      ASSERT_EQ(..things with tp... );
      ... more ASSERTION 
  }
  </code></pre>
  
  <p>What I am trying to do, is to run </p>
  
  <pre><code>TEST(MyTest, testImportantThings)
  </code></pre>
  
  <p>multiple times for each of the <code>utc_clock</code>, <code>system_clock</code>, <code>cpu_clock</code></p>
  
  <p>I have looked into <a href="https://stackoverflow.com/questions/45234042/how-to-get-gtest-typed-test-parameter-type">How to get gtest TYPED_TEST parameter type</a>,</p>
  
  <p>after that, I got the following:</p>
  
  <pre><code>template&lt;typename T&gt;
  struct MyTest: public testing::Test{
      using MyParamType = T;
  };
  
  using MyTypes = testing::TYpes&lt;utc_clock, system_clock, cpu_clock&gt;;
  
  TYPED_TEST_CASE(MyTest, MyTypes);
  
  TYPED_TEST(MyTest, testImportantStuff)
  {
      using clock = typename TestFixture::MyParamType;
  
      timepoint&lt;clock&gt; tp = clock::now();
  
      ASSERT_EQ(..things with tp... );
      ... more ASSERTION 
  
  }
  </code></pre>
  
  <p>But I get the following errors:</p>
  
  <ol>
  <li><blockquote>
    <p>unexpected token(s) preceding ';' on: <code>using MyParamType = T;</code></p>
  </blockquote></li>
  <li><blockquote>
    <p>testing::internal::TYpeList use of class template requires template
    arguement list online on: <code>using MyTypes = testing::TYpes&lt;utc_clock, system_clock, cpu_clock&gt;;</code></p>
  </blockquote></li>
  </ol>
  
  <p>and more...</p>