<p>I've a class which is a wrapper class(serves as a common interface) around another class implementing the functionality required. So my code looks like this.</p>

<pre><code>template&lt;typename ImplemenationClass&gt; class WrapperClass {
// the code goes here
}
</code></pre>

<p>Now, how do I make sure that <code>ImplementationClass</code> can be derived from a set of classes only, similar to java's generics</p>

<pre><code>&lt;? extends BaseClass&gt;
</code></pre>

<p>syntax?</p>

In the current state of things, there is no good way other than by comments or a third-party solution. Boost provides a
concept check library
for this, and I think gcc also has an implementation. Concepts are on the list of C++0x improvements, but I'm not sure if you can specify subtypes - they are more for "must support these operations" which is (roughly) equivalent.
Edit:
Wikipedia has this
section
about concepts in C++0x, which is significantly easier to read than draft proposals.