私はここで意図的に主観的な質問をしたくないですが、私は直接この質問をする他に誰も持っていません...C++:auto、またはtypedefを使用しますか?
私はもっとチーム私が書いた新しいコードの最新のC++概念。私の同僚はテンプレートに少し恥ずかしがり、最近作成したクラス(ファクトリメソッドはunique_ptr
が返され、これらのオブジェクトのリストはshared_ptr
を使用してリストアされます)を利用するときはFoobar*
の代わりにunique_ptr<Foobar>
またはshared_ptr<Foobar>
を入力する必要があります。
彼らは私の腕をねじって、入力しやすいものにtypedefを入力するように頼んだ。例えばFoobarUniquePtr
。
しかし、私はこれらのtypedefでconst-correctnessの混乱に陥っています。私はconstとnon constの型ごとに余分なtypedefを定義しなければならず、const const_FoobarUniquePtr
はconstの意味を適切に表現していないようです。
私の質問によれば、これらのtypedefの使用をやめ、代わりにauto
を私のチームメイトに押しつけるのは理にかなっていますか?私は他の選択肢にもオープンしています。
+1あなたの同僚に近代的なプラクティスを使用しようとすると+1! – Nick
'unique_ptr'または 'const unique_ptr 'にも問題がありますか? –
Useless
オートのようなサウンドは、このタイプのもののためだけに作成されました。その素晴らしいショートカットを使用すると、変数に使用する必要があるタイプを正確に把握するのではなく、autoを置くことができます。それが意味をなさないかどうか聞いてみると、よく言えば、言語標準のその部分を使ってこのようにして、私に「正しい」と言います。しかし、もちろん、個人的な好みがあるかもしれませんが、私は一部の人が明示的なタイプをどこで使用し、自動車に依存していないと思うかもしれないと主張するかもしれないと考えています。しかし、個人的な好みを超えて、それは有効な使用のように思えます。 – Nerdtron