title: Penalty of the MSVS compiler flag /bigobj
body: <p>The basic Google search <a href="https://www.google.com/search?q=bigobj+issue" rel="noreferrer">bigobj issue</a> shows that a lot of people are experiencing the <a href="http://msdn.microsoft.com/en-us/library/8578y171.aspx" rel="noreferrer">Fatal Error C1128</a>: "<em>number of sections exceeded object file format limit : compile with /bigobj</em>". The error has more chance to occur if one heavily uses a library of C++ templates, like <a href="http://www.boost.org" rel="noreferrer">Boost libraries</a> or <a href="http://www.cgal.org/" rel="noreferrer">CGAL libraries</a>.</p>
  
  <p>That error is strange, because it gives the solution to itself: set the <a href="http://msdn.microsoft.com/en-us/library/ms173499.aspx" rel="noreferrer">compiler flag <code>/bigobj</code></a>!</p>
  
  <p>So here is my question: why is not that flag set by default? There must be a penalty of using that flag, otherwise it would be set by default. That penalty is not documented in MSDN. Does anybody have a clue?</p>
  
  <p>I ask the question because I wonder if the configuration system of <a href="http://www.cgal.org" rel="noreferrer">CGAL</a> should not set <code>/bigobj</code> by default.</p>