次のコードでは:
int return_int_func() { return 0; }
float fv = return_int_func();
明らかに、コンパイラはfv
、自動キャストのために精度が失われる可能性があることを警告します。それらの多くに直面して、私はすべてのものを代替コマンドに置き換えたい. 要するに、私はこれが欲しい:
float fv = static_cast<float>(return_int_func());
しかし、実際のコードには、次のような形式がたくさんあります。
float fv = obj.int_field;
float fv = obj->load_int_field("name");
float fv = xx.yy->zz;
ターゲット ( obj.int_field
、obj->load_int_field("name")
またはxx.yy->zz
) を選択して、 に置き換えstatic_cast<float>(\1)
ます。私はこれを試しました:
:'<,'>s/\%V/static_cast<float>(&)/g
しかし、vimは選択した単語のすべての文字static_cast...
を置き換えますが、それは私が望んでいることではありません。それから私はこれを試しました:
:'<,'>s/\(\%V\)/static_cast<float>(\1)/g
Vimも同じことをします。コンテンツ全体(および正規表現文字にもかかわらず) を自分のパターンに置き換える方法がわかりません。助言がありますか?