title: Is f(void) deprecated in modern C and C++?
body: <p>I'm currently refactoring/tidying up some old C code used in a C++ project, and regularly see functions such as:</p>
  <pre><code>int f(void)
  </code></pre>
  <p>which I would tend to write as:</p>
  <pre><code>int f()
  </code></pre>
  <p>Is there any reason not to replace (void) with () throughout the codebase in order to improve consistency, or is there a subtle difference between the two that I am unaware of?</p>
  <p>More specifically, if a virtual member function in C++ is described as:</p>
  <pre><code>virtual int f(void)
  </code></pre>
  <p>and a derived class includes a member function:</p>
  <pre><code>int f()
  </code></pre>
  <p>is this a valid override?  Additionally, am I likely to encounter any linker problems based on almost identical signatures?</p>