-1
私はそれを短くします。コード:メインでC++引数として単一ティックのテンプレート文字
typedef int NAME;
template <NAME, typename T>
class MyTemplate
{
public:
MyTemplate(T value)
{
value_type = value;
}
T value_type;
operator T& const()
{
return value_type;
}
};
とIn:
MyTemplate<'val', int> number1(1);
私はしばらく前にこの種のコード全体に急落し、私はちょうど記憶でそれを再構築。私にとって混乱しているのは、最初のテンプレート引数としてval
です。また、4文字以上を渡すと、コンパイラは不平を言うでしょう。 テンプレート内のNAME
の目的は何でしょうか。なぜstring
を1ダニで渡すことができますか?しばらく前に私が見たコードがtypedefを持っているのかどうかは分かりませんが、それがなければコンパイルできません。
「val」とは何ですか?それは 'char'リテラルではありません。 – user0042
@ user0042これは文字リテラルの一種であるマルチ文字リテラルです。 http://en.cppreference.com/w/cpp/language/character_literal#6を参照してください。 –
@FrançoisAndrieuxこれは有効なものですか? – user0042