「typedef」と「using」が意味的に同等であることは何を意味しますか?私は主に「意味的に同等」という言葉に焦点を当てています。私は「意味的」に見えるようにしようとしましたが、プログラミングの世界で言葉の使用法と関連付けることのできる同義語や意味は実際には言及されませんでした。typedefとusingが意味的に同等であることは何を意味しますか?
答えて
文法が少し違っていても、同じことを意味します。たとえば、次のよう
using INTEGER = int;
は*使用して構文はtypedefではないテンプレートを使用しても動作しますが、非テンプレートに対して彼らは次のように
typedef int INTEGER;
がusing
構文で書くことができます同等。
あなたは別名としておよそusing
を考えることがあります。
using a = b<c>;
は「タイプとして、a
はb<c>
の意味」のように扱うことができます。
typedef
は全く同じことを行いますが、それはC言語から来て、変数の宣言と同じ構文を使用し、多層のテンプレート、配列、CV-分類、関数で使用するときにそれらを読み取ることは困難ですなどの種類:あなたは簡単に名前を見ることができるので
typedef int const* (*func_t)(std::vector<int> const&);
// The same:
using func_t = int const* (*)(std::vector<int> const&);
私にとっては
、using
は多くの良いです。
もう1つの違いは、テンプレート引数を使用してusing
を使用できることです。しばらくの間、私は私のハッキングコードでこれを使用:
template<typename T>
using set_it = std::set<T>::iterator;
そして私は、私はstd::set<int>::iterator
を得た型としてset_it<int>
を使用するたびに。 typedef
でこれを行うことはできません。
*「set_it
- 1. このtypedefの行は何を意味しますか?
- 2. C++で "typedef"という意味がありますか?
- 3. 「+ =」(プラスは等しい)とは何を意味しますか?
- 4. 客観的な意味での意味は何ですか?
- 5. `` * `は` `typedef struct`宣言で何を意味しますか?
- 6. 意味論は何を意味しますか?
- 7. 何かを数値的に解くことは何を意味しますか?
- 8. exeが動的にコンパイルされることは何を意味しますか?
- 9. NSDecimalAdd() - constの意味は何を意味するのですか?
- 10. ハッシュ関数が増分であることは何を意味しますか?
- 11. ComboBoxが「ホット」であることは何を意味しますか?
- 12. プログラムを「ビルド」することは何を意味しますか
- 13. アーティファクトスコープが推移的でないことは何を意味しますか?
- 14. * .vcxprojファイルでキーワードタグが意味することは何ですか?
- 15. Clojure: `と〜@の意味は何ですか?
- 16. RNNを動的に展開することは何を意味しますか?
- 17. このシンボルとは何ですか?:PHPでは意味がありますか?
- 18. C言語のtypedef構造体の意味は何ですか?
- 19. ネットワークインターフェイスドライバを開くことは何を意味しますか?
- 20. "typedef __u16 __bitwise __le16;"とは何ですか? Linuxカーネルの意味ですか?
- 21. OpenNLPで意味のあるものは意味がありますか?
- 22. 「暗黙の匿名クラスのパラメータ」とは、この意味で何を意味しますか? Androidのメーカーで
- 23. 揺れないことは何を意味しますか?
- 24. 何が=!意味はjavascriptで
- 25. Pythonで何が意味することはオブジェクトであるのですか
- 26. プログラミングで推移的なことは何を意味していますか?
- 27. NHibernateでLazyが意味すること
- 28. この式がExcelで意味することは何ですか? (セルが範囲に等しい)
- 29. IndexOutofRangeExceptionは何を意味しますか?
- 30. !viは何を意味しますか?
セマンティクスは、意味を扱う言語学の枝です。つまり、何かが「意味的に同等」であるということは、一般に、「彼らはまったく同じことを意味し、プログラムに同じ効果をもたらす」ということを一般的に意味します。 'using'が' typedef'が(テンプレート化されていないなど)できないこともありますが、それ以外はコンパイルにも同じ効果があります。どちらもエイリアスを作成します。 – cdhowie
https://eng.stackexchange.com/とhttps://en.wikipedia.org/wiki/Semantics –
を参照してください。[typedefとC++ 11での 'using'の違いは何ですか?] (http://stackoverflow.com/questions/10747810/what-is-the-difference-between-typedef-and-using-in-c11) – PointerToConstantChar