記事の冒頭で、ウィンドウのすぐ外側が2011年( pruflink )、4月中旬であるという事実を述べたいと思います。 私はこのことについて疑念を抱いて定期的に訪問しているので、まず自分にこれを思い出させます。 事実、仕事と趣味の両方で、10〜20年前に書かれた(しかしまだサポートされている)C ++コードまたは最近書かれたコードをよく読んでいますが、C ++でプログラミングを学んだ人が書いています20年前と同じです。 そしてその後、私は長年にわたって進歩がなく、何も変化も発展もしておらず、マンモスがまだ地球を歩き回っているという感覚を持っています。
エントリー
KVNから:
-そして、祖母のソチでは、1日に25ドルで部屋を借りることができますか?
-ああ、そう遠くない、みんな。 90年目に。
20年前のプログラミングの詳細は完全に異なっていました。 メモリとプロセッサのリソースはバイトとクロックサイクルでカウントされましたが、多くのものはまだ発明されておらず、ひねる必要がありました。 しかし、これはこれらの前提に基づいて今日コードを書く理由ではありません。 世界は変化しています。
さらに記述するのは、C ++プログラミングとメインストリームコンパイラ(gcc、Intel、Microsoft)のみです。他の言語とコンパイラでの作業は少なく、それらの状態について話すことはできません。 また、デスクトップOSに適用されるプログラミングについてのみ説明します(クラスター、マイクロプロセッサ、およびシステムプログラミングでは、傾向は異なる場合があります)。
TR1
過去5年間戦車に乗っていた人たちのために、私は偉大な軍事的秘密を語ります(トコシッ!)。 TR1のようなものがあります。 これは明らかになるかもしれませんが、ほとんどすべての最新のコンパイラには、組み込みのスマートポインター、優れた乱数ジェネレーター、多くの特別な数学関数、正規表現やその他の興味深いものがサポートされています。 かなりうまくいきます。 それを使用します。
C ++ 0x
数年前に重装甲車のシートマグに参加した人たちのために、もう一つ良いニュースをあげます。 C ++ 0xのようなものがあります。 兄弟よ、喜ぶ! はい、公式にはまだいくつかの高い署名がなく、標準ボード上のシャンパンのボトルを破る儀式はまだ行われていませんが、リリース候補は承認されており、コンパイラですでにサポートされています。
すでにあなたのサービスで:
- ラムダ式
- 右辺値リンク
- 一般化された定数式
- 外部テンプレート
- 初期化リスト
- ループのコレクション
- オブジェクトコンストラクターの改善
- nullptr
- テンプレート引数としてのローカル型と匿名型
- 明示的な演算子変換
- Unicode文字と文字列
- 生の文字列リテラル
- 静的診断
- テンプレートtypedef
- 自動キーワード
その他の便利なものがたくさんあります。
さて、少なくとも次の例を見てください:
- 代わりに
vector<int>::const_iterator itr = myvec.begin();
— ! , (auto — Variant, )auto itr = myvec.begin();
- for_each
int my_array[5] = {1, 2, 3, 4, 5}; for(int &x : my_array) x *= 2;
, ? , , ( \) . . ?
()
— . , . :
- , — .
- — .
. ( ), :
- - NULL. , NULL .
- - , . , — . «const» — . ++ , .
- , .
- , . , .
: , + ( ).
:
#define PI 3.1415926535897932384626433832795 #define PI_DIV_BY_2 1.5707963267948966192313216916398 #define PI_DIV_BY_4 0.78539816339744830961566084581988 ... < 180 > ...
- , , . «PI/2» , , , 180 . .
- :
class MySuperVector { // ... }
. STL, Boost ( ), . - 3- :
- (, )
- STL, Boost, , 3 , .
:
- ,
- « , — »
,
:
int a = 10; a <<= 1;
? , . , 2. , , . :
- , .
- , .
, ( ) : « ?». ?
, 1-2 .
2 4 . 64- . . , . , , , , , , .. — long, longlong - . byte, short int. - , . , «, ».
. .