title: Is it possible to write header file without include guard, and without multiple definition errors?
body: <p>Just out of curiosity I wanted to know if is there a way to achieve this.</p>
  
  <p>In C++ we learn that we should avoid using macros. But when we use include guards, we do use at least one macro. So I was wondering if there is a way to write a macro-free program.</p>