The "..." are variadic templates. They are not supported in VS2010...

The reason why I did that is because I made the assumption that an iterator can be instantiated and survive to this object, so I pass "this" in a shared_ptr... and the correct way to do this is to derive enabled_shared_from_this and to create a first shared_ptr. To make the creation of the first shared_ptr mandatory, I need to distribute an instance through appropriate methods. Variadic templates allow the economy of the creation of 1 function for each constructor (4 in total).

So the solution is to de-templatize this function and write it for each constructor.