私の質問は:
パラメータがリテラル文字列かどうかを判断する方法はありますか?
template<class T>
bool IsLiteral(T arg)
{
// How to implement?
}
また
template<class T>
struct IsLiteral { enum { value = ??? }; };
次のコードを記述できるようにします。
char* p = "Hello";
assert(IsLiteral(p)); // fail.
assert(IsLiteral("Hello")); // never fail.
assert(IsLiteral<decltype("Hello")>::value); // never fail.