title: Lazy/multi-stage construction in C++
body: <p>What's a good existing class/design pattern for multi-stage construction/initialization of an object in C++?</p>
  
  <p>I have a class with some data members which should be initialized in different points in the program's flow, so their initialization has to be delayed. For example one argument can be read from a file and another from the network.</p>
  
  <p>Currently I am using boost::optional for the delayed construction of the data members, but it's bothering me that optional is semantically different than delay-constructed.</p>
  
  <p>What I need reminds features of boost::bind and lambda partial function application, and using these libraries I can probably design multi-stage construction - but I prefer using existing, tested classes. (Or maybe there's another multi-stage construction pattern which I am not familiar with).</p>