Software is a delicate thing. The myth of "portability" is detrimental in that it causes us to abuse intricate, beautiful code by turning it into generic, ugly tripe. If you develop something that doesn't require loving care to compile, you've failed your inner artist.

That being said, Francis would like to share the following work of art with you. Keep your hands to yourself, however, because the slightest touch could bring everything crashing down. Also, be sure to read all of our other snippets first, as this one must be last.


  struct summand
  {
  public: // data members -- deliberately public
// (to avoid many friend declarations)
  summand* myNext;
 
OrdArith::OrdElem myOrd[1]; // myOrd
// ABSOLUTELY MUST BE THE LAST DATA MEMBER.

    // The compiler will allocate this at the end,
    // so I can address elements with index greater than
    // 1 with impunity if I know the space exists.
  };
[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!