title: restrict(amp) function type
body: <p>I can create <code>restrict(amp)</code> function as follows:</p>
  
  <pre><code>auto f = [](int&amp; item) restrict(amp) {item += 1;};
  </code></pre>
  
  <p>And I can use this function in other <code>restrict(amp)</code> functions, for example:</p>
  
  <pre><code>concurrency::parallel_for_each(av.extent,
      [=](concurrency::index&lt;1&gt; idx) restrict(amp) 
      { 
        f(av[idx]); 
      }
  );
  </code></pre>
  
  <p>What type of substituted instead "<code>auto</code>" after compilation? I tried to use the "std::function":</p>
  
  <pre><code>std::function&lt;void (int&amp;) restrict(amp)&gt; f
             = [](int&amp; item) restrict(amp) {item += 1;};
  </code></pre>
  
  <p>but received a compile error.</p>
  
  <p>Thank you for your attention!</p>