I'm puzzled as to why making the constructors explicit doesn't work.

I've posted a question on stackoverflow using std::bind / std::function (but the gist is the same)

http://stackoverflow.com/questions/18939107/return-type-of-stdbind-implicitly-convertible-to-two-different-explicit-constr