title: c++ function with optional arguments
body: <p>What is the best way to declare a method like this:</p>
  
  <pre><code>calc( string name, string arguments, 
        string lib, 
        string &amp;output, string &amp;error, 
        string finishInfo )
  </code></pre>
  
  <p>where every parameter is optional? User can pass name, arguments and error if needed; pass only finishInfo or pass all six arguments. Probably the most user friendly is being able to call:</p>
  
  <pre><code>calc( "my name", , "my library", , , );
  </code></pre>
  
  <p>but I don't know if it's possible to do without boost. I cannot overload, because I'd need to create 62 methods. My best idea is:</p>
  
  <pre><code>calc( string * name = NULL, string * arguments = NULL, 
        string * lib = NULL, 
        string * output = NULL, string * error = NULL, 
        string * finishInfo = NULL )
  </code></pre>
  
  <p>I'm changing everything to pointers, this way we need to call</p>
  
  <pre><code>calc( ptr_myName, NULL, ptr_myLib, NULL, NULL, NULL );
  </code></pre>
  
  <p>or</p>
  
  <pre><code>calc( string name = "", string arguments = "",
        string lib = "",
  ...
  calc( "", "",
        "my library",
  </code></pre>