specialize a pool class based on whether create function is passed in
<p>I have a templated pool class that manages of lifetime of a bunch of objects. Normally, it will call new and delete as needed, but I can also pass in a create function and destroy function.</p>

<p>Now, for some users of this class I'd like to have a private constructor and only allow passing in a create / destroy function. This causes a compilation error because the "new T" line is still in the pool class even though it's not used. So far, I've solved this by making pool a friend of the class in question. This still leaves open the possibility for misuse (eg by creating a pool of the particular object by hand and not passing create / destroy functions in), so I'm wondering what's the best way to specialize the pool class so I can have true private constructors on its template arguments without using friend.</p>
