title: Using CUDA 8.0 with GCC 6.x - bad function overloading complaint
body: <p>I'm trying to build some CUDA code using GCC 6.2.1, the default compiler of my distribution (Note: not a GCC version officially supported by CUDA, so you can call this experimental). This is code which builds fine with GCC 4.9.3 and both CUDA versions 7.5 and 8.0.</p>
  
  <p>Well, if I build the following (close-to) minimal example:</p>
  
  <pre><code>#include &lt;tuple&gt;
  
  int main() { return 0; }
  </code></pre>
  
  <p>with the command-line</p>
  
  <pre><code>nvcc -std=c++11 -Wno-deprecated-gpu-targets -o main main.cu
  </code></pre>
  
  <p>I get the following errors:</p>
  
  <pre><code>/usr/local/cuda/bin/../targets/x86_64-linux/include/math_functions.h(8897): error: cannot overload functions distinguished by return type alone
  
  /usr/local/cuda/bin/../targets/x86_64-linux/include/math_functions.h(8901): error: cannot overload functions distinguished by return type alone
  
  2 errors detected in the compilation of "/tmp/tmpxft_000071fe_00000000-9_b.cpp1.ii".
  </code></pre>
  
  <p>Why is that? How can I correct/circumvent this?</p>