title: Inline function linkage
body: <p>I can't make sense of the following behavior: one header with some basic types, and another header in which I use these types in several functions. Afterward I started constructing classes based on my defined types and functions. In the function header if I leave the following signature:</p>
  
  <pre><code>void whateverFunction(parameters)
  </code></pre>
  
  <p>The linker points out that there are multiple definitions of whateverFunction. Now if change it to:</p>
  
  <pre><code>inline void whateverFunction(parameters)
  </code></pre>
  
  <p>the linkage problem is gone and all compiles and links well. What I know concerning inline is that it replaces every function call with it's code other than that it's a pretty dark, so my question is:</p>
  
  <p><strong>How does the linker treats inline functions in C++?</strong></p>