SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Visual C++ 2008 Feature Pack: MFCの強化 (2)

Visual C++ 2008 Feature Packでの配列・正規表現・関数オブジェクト

  • このエントリーをはてなブックマークに追加

標準C++ライブラリの拡張についてのドラフト「Technical Report 1(TR1)」は、将来標準の一部になると見込まれる新機能を数多く含んでおり、Visual C++ 2008 Feature Pack(Beta版)にも含まれています。インストール方法などは前回解説したので、今回は具体的な機能について概観してみます。

  • このエントリーをはてなブックマークに追加

はじめに

 マネージド言語の発展ペースに比べると、C++言語の変化は誠に遅々たるものに見えますが、C++での新機能の開発は着実なペースで以前と同様に続いており、全体的に見ればこの点こそがC++という言語の特徴と言えます。Visual Basicのような、トレンドに合わせてその姿形を変えていく言語と比べると、長い目で見ての安定性はC++の大きな特長の1つです。C++では、変更は安定したペースで、かつ十分に精査されたうえで起こります。現在進行中のC++言語への拡張は「C++0x Standard」と呼ばれており、この拡張では、ここ10年間に標準として承認された事項を反映しています。Technical Report 1(TR1)は、こうした標準化プロセスでの1つの中間段階であり、最終的には標準の一部になると見込まれる新機能を数多く盛り込んでいます。

 このMFC機能パックとそのインストールについては以前の記事である程度触れたので、そこで述べた説明やヒントは、ここでは繰り返さないでおきます。

STLの配列

 これまでのSTLコンテナのコレクションに欠けていた最も重要な機能の1つは、固定長の配列です。Cスタイルの配列や、vector、サードパーティーのライブラリを使用するなど、代替となる手法は数多くありますが、一般のC++プログラマのニーズを考えれば、固定長配列をSTLに追加することは必然です。今回新たに追加された配列型コレクションの使い方は非常にシンプルです。配列の長さをテンプレートのパラメータとして指定すると、そのコレクションはSTLのvectorコレクションと大変よく似た動きをするようになります。

#include <array>
#include <iostream>
#include <string>

std::tr1::array<int, 3> intArray = {4, 8, 10};

std::tr1::array<int, 3> intArray2 = {4, 8};
intArray2[2] = 10;

std::cout << ((intArray == intArray2)?
   std::string("Arrays are equal"):
   std::string("Arrays aren't equal")
);

std::cout << std::endl;

for (std::tr1::array<int, 3>::const_iterator it =
   intArray2.begin();
   it != intArray2.end();
   ++it) {
   std::cout << " " << *it;
}

 このサンプルコードには注目すべき点がいくつかあります。配列の全内容または一部の内容はイニシャライザで指定することができ、コンパイラは、イニシャライザの型と長さをチェックして、イニシャライザが配列の定義に従っていることを確認できます。==演算子もオーバーライドされており、配列内の各要素の値同士を比較できます。また、イテレータは他のSTLコレクションとまったく同じように機能します。さらに注目すべき点は、C++ 2008機能パックの一部としてリリースされるTR1拡張はすべてstd::tr1名前空間に含まれているということです。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
正規表現

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Nick Wienholt(Nick Wienholt)

シドニーに拠点を置く独立系Windowsおよび.NETコンサルタント。著書に『Maximizing .NET Performance』、共著に『A Programmers Introduction to C# 2.0』(いずれもApress刊)。システムレベルソフトウェアアーキテクチャおよび開発を専門とし、パフォーマンス、セキュリティ、相互運用性、およびデバッグに精通。.NETコミュニティに精力的に参加。Sydney Deep .N...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2639 2008/07/11 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング