title: How can I include a header file that contains `>` in its name?
body: <p>This is quite a contrived problem, I admit, but here it is.</p>
  
  <p>Suppose you have a file with the <code>&gt;</code> character in its name. This is possible on most Unix systems <em>afaik</em>:</p>
  
  <pre><code>$ touch 'weird&gt;name'
  $ ls -l
  -rw-r--r--  1 user  user   0 28 Mag 11:05 weird&gt;name
  </code></pre>
  
  <p>Now, suppose this file contains C/C++ code and you want to include it as an header:</p>
  
  <pre><code>#include &lt;weird&gt;name&gt;
  
  int main() {
    return weird_function();
  }
  </code></pre>
  
  <p>Clang gives me the following error:</p>
  
  <pre><code>test.cpp:1:10: fatal error: 'weird' file not found
  #include &lt;weird&gt;name&gt;
  </code></pre>
  
  <p>Of course, since the preprocessor parses the directive up to the first <code>&gt;</code> and looks for the <code>weird</code> file. But, I wonder if some escaping mechanism exists to allow me to include the right file.</p>
  
  <p>So, in C and/or C++, is there a way to include an header file which has the <code>&gt;</code> character in its name?</p>
  
  <p><strong>Edit:</strong> Many suggested me why not to use <code>#include "weird&gt;name"</code>. I admit that my mind slipped over the quotes syntax while writing the question, but it remains valid because the two syntaxes may ask the compiler to search in different paths (theoretically at least). So is there any escaping mechanism to let me include <code>weird&gt;name</code> using the <code>#include &lt;&gt;</code> syntax?</p>