Boost.TypeErasure の any は暗黙の型変換が行われない

Boost.TypeErasure の any のコンストラクタは explicit で定義されており、暗黙の型変換が行われません。
これは次のように関数の引数に any を使用する場合に問題になります。

[ソース]

#include <boost/type_erasure/any.hpp>
#include <boost/type_erasure/operators.hpp>
#include <boost/mpl/vector.hpp>
#include <iostream>


typedef boost::mpl::vector<
    boost::type_erasure::ostreamable<>,
    boost::type_erasure::copy_constructible<>
> disp_concept;

void
disp(boost::type_erasure::any<disp_concept> const& any){
    std::cout << any << std::endl;
}


#include <string>

int
main(){
    // ok
    disp(boost::type_erasure::any<disp_concept>(10));
    disp(boost::type_erasure::any<disp_concept>(std::string("homu")));

    // error
//  disp(10);
//  disp(std::string("homu"));

    return 0;
}

[出力]

10
homu


こんな感じに関数に渡す場合に明示的に any に変換してから渡す必要があります。
実際にこういう関数の引数に any を定義して使用したい場合はあると思うんですが、これだとちょっと冗長な気がしますね。
Concept も呼び出し側で指定しなければ行けませんし。
何か回避方法があるんだろか。