1
gtestからの奇妙なエラーメッセージが発生しました。なぜgtestは私の式が気に入らないのですか?
EXPECT_EQ(MyVal,0xe -2);
と
EXPECT_EQ(MyVal,0xf-2);
は罰金コンパイルしながら、
unable to find numeric literal operator 'operator"" -2'
:エラーメッセージの
EXPECT_EQ(MyVal,0xe-2);
結果をコンパイルします。何か案は? (たぶんそれは累乗を試みますか?)
これまでは、C++!空白を無視します。そうでない場合はどこでケースを見つけることができますか? – katang
ありがとう、私は完全にそれを理解していません。それが1つのトークンである場合、処理で演算子が検索されるのはなぜですか?前処理が 'e-2'のような例外を考慮し、結果が間違っている場合、 「f-2」と同様に解釈しようとしないのはなぜですか?示されている方法では、合法的な式は、後続のプリプロセッサのためにfalseと評価されます。 – katang
'literal operator" "エラーは、数値リテラルに付加された文字列(長さと記号のサフィックスのような)であるユーザ定義のリテラル変換演算子を許可するC++ 11の機能を指します。 Afaik、文字通りの演算子は文字か '$'で始める必要があるので、エラーメッセージはちょっと奇妙です。なぜそれが別のレックスを試していないのかというと、唯一の答えは "それが標準のことだから"です。しかし、C++はあなたが意味するかもしれないものを決して見つけようとしないので、一貫しています。 – rici