//関数の呼び出しで標準変換を禁止する方法はないものなのでしょうか?

#include<iostream>
struct CStrin
{
CStrin(char a){//explicitは使いたくない}
};
void test( CStrin s )
{
std::cout << "test(CS)";
}
void test(float a)
{
std::cout << "test(float)";
}

template <typename T> struct A
{
void operator() (T a){}
};

int main()
{
test('a');//test(float)

A<const char>()('a');//関数オブジェクトを使うしか...

}