title: Error : names the constructor, not the type. while compiling with g++4.6.1
body: <p>I am compiling the code with g++4.6.1 on aix6.1 and getting this error:-</p>
  
  <pre><code>ViaChecks.h:14:3: error: 'BuPolygonEX&lt;AllPass&lt;CornerT&lt;NetAndVal&lt;ZVal3&gt; &gt; &gt; &gt;::IOPS::Base {aka BuPolygonCore&lt;bu_polygon_clean_func, no_derivatives, AllPass&lt;CornerT&lt;NetAndVal&lt;ZVal3&gt; &gt; &gt; &gt;::IOPS}::IOPS' names the constructor, not the type
  </code></pre>
  
  <p>The structure is defined as :</p>
  
  <pre><code>struct ViaSquareCheck : BuPolygonEX&lt;AllPass&lt;CornerT&lt;NetAndVal&lt;ZVal3&gt; &gt; &gt; &gt; {
    typedef BuPolygonEX&lt;AllPass&lt;CornerT&lt;NetAndVal&lt;ZVal3&gt; &gt; &gt; &gt; Base;
    DEFINE_ENGINE_PROPERTIES_INHERIT(Base::IOPS, void update() { Base::update(); i().xregion_1nm_oversize(x0nm); o().xregion_1nm_oversize(x0nm); o().derivatives(x_dom); o().bu_polygonized(yes); }); // via_square_dim property is added inside
    membert(int, amount, -1, ViaSquareCheck);
    ViaSquareCheck();
    ViaSquareCheck* output(DFC* dfc) { return set_output(0,dfc); } // single output returns good vias
    ViaSquareCheck* set_output(int k, DFC* dfc);
    void option(const string&amp; pname, const string&amp; pval); // some options change engine properties
  private:
    BadViaMultiplexer&lt;C&gt;* mux;
    GIM2a&lt;APC&gt; bad_via_gim;
    GIM2a&lt;APC&gt; good_via_gim;
    member(bool, linked, false);
    member(bool, ok_45, false);
    void link();
    member(ViaSquareCheckNetProcess*, np,NULL);
  };
  </code></pre>
  
  <p>Definition of DEFINE_ENGINE_PROPERTIES_INHERIT:-</p>
  
  <pre><code>#define DEFINE_ENGINE_PROPERTIES_INHERIT(SSSS, extras...) \
  struct IOPS : SSSS { \
        EnginePropertiesVector&amp; i() { return SSSS::i(); }; \
        EnginePropertiesVector&amp; o() { return SSSS::o(); }; \
        EngineProperties&amp; i(int n) { return SSSS::i(n); }; \
        EngineProperties&amp; o(int n) { return SSSS::o(n); }; \
        typedef SSSS Base; \
        extras; } ep_; 
  </code></pre>
  
  <p>Thanks.</p>