タグ

c++に関するnobeansのブックマーク (15)

  • C++名前空間

    [ C++で開発 ] C++名前空間 昔C++をかじった頃は名前空間はありませんでした。Javaに手を染めてから標準C++に入ったときに、名前空間を知って、これはJavaのpackageと同じようなものだなぁと思いました。 クラスが増えてくると、クラス名等の名前定義の衝突が考えられます。古くは、定義名の先頭にプロジェクトなどの名称を接頭辞として付与する方法を取っていましたが、名前空間を使用すると効果的な管理ができるようになります。 また、UMLによる設計をしている場合、パッケージを実装するのに名前空間を使います。 名前空間の使用方法 名前空間の中に型定義を行う 名前空間を指定して関数宣言、定数定義、型定義をする場合、namespace 名前 { ... } で囲います。通常これらはヘッダファイルに記述することになります。 namespace torutk { void clear_list

    nobeans
    nobeans 2014/01/09
  • C++例外処理プログラミング

    [ C++で開発 ] 例外処理プログラミング 戻り値によるエラー通知ではなく、より障害に対する耐性を高めるためのシステムとしてC++言語に導入されたのが例外機構です。この例外処理はC++に限らずオブジェクト指向言語の多くに導入されています。 throwとcatchの書き方 3つの方法:ポインタ渡しか値渡しか参照渡しか 関数宣言のthrow:例外仕様 単純なunexpected/terminateの実装 例外の考え方 例外を使用する/しない 例外処理をする/しない スタックフレームを保持する例外 Exceptionクラス TraceExceptionクラス Linuxのbacktraceシステムコール backtraceを用いた例外クラスの実装例 throwとcatchの書き方 3つの方法:ポインタ渡しか値渡しか参照渡しか (節の記述は、書籍「More Effective C++」の§13

    nobeans
    nobeans 2014/01/09
  • Committee Draft 1への日本からのコメントのその後 - meryngii.neta

    C++0xのCommittee Draft 1への日からのコメントのその後について適当に書いてみました。 C++ CD1 Comment Status まあ原文を読んでもらえば済む話なのですが、半年経った今改めて振り返るためにまとめました。 結構数があるので今回はtypoの修正等を省略させてもらい、独断と偏見によって技術系の提案のみに絞ります。 JP-5 raw-stringの結合規則 raw-string(エスケープ文字を無効化する)と普通の文字列リテラルの結合を明確にせよという提案。 いまだにopenになっている。どうもまだ解決していないらしい。 790. Concatenation of raw and non-raw string literals JP-8 decltype(T)にスコープ解決演算子::が使えない decltype(T)::value_typeとできないので困る

    Committee Draft 1への日本からのコメントのその後 - meryngii.neta
    nobeans
    nobeans 2014/01/09
  • Upgrading an STL-based application to use Unicode.

    Problems that developers will face when upgrading an STL-based application to use Unicode and how to solve them. Introduction I recently upgraded a reasonably large program to use Unicode instead of single-byte characters. Apart from a few legacy modules, I had dutifully used the t- functions and wrapped all my strings literals and character constants in _T() macros, safe in the knowledge that whe

    nobeans
    nobeans 2014/01/09
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    nobeans
    nobeans 2014/01/09
  • Windows API on C++

    となります。グローバルなロケールを設定する場合、std::localeクラスのstaticメンバ関数のglobalを用いて設定します。 std::locale std::locale::global(const std::locale&); これにロケールクラスのインスタンスを引き渡します。ただし、このロケールが影響を与えるのは、これを実行した後で生成したインスタンスに対してだけです。 たとえば、std::wcoutには影響を及ぼしません。そこで、std::basic_ostreamクラスの基底クラスであるstd::iosクラスのimbueメンバ関数を呼びましょう。 std::ios::imbue(const std::locale&); これにlocaleクラスのオブジェクトを渡せばいいです。 Cであれば、setlocale()関数によって設定します。これはプログラム全体に影響を

    nobeans
    nobeans 2013/12/28
    ロケールと文字コード変換
  • 微分積分

    静岡理工科大学情報学部コンピュータシステム学科菅沼研究室のページです.主として,プログラミング言語( HTML,C/C++, Java, JavaScript, PHP, HTML,VB,C# ),及び,システムエンジニアとしての基礎知識(数学,オペレーションズ・リサーチやシステム工学関連の手法)を扱っています.

    nobeans
    nobeans 2013/12/28
    iostreamで書式操作する方法についてまとまってる
  • Windows API on C++

    〜A系の関数、構造体は引数にShift_jis文字列を受け取ります。〜W系の関数、構造体は引数にUnicode文字列を受け取ります。 NT系で〜A系の関数を呼び出すと、Unicodeへの変換が起こります。これがオーバーヘッドになるかどうかといえば微妙ですが、全くないとは思えません。 次の節では、APIプログラミングではどのようになるのかを解説します。 2 APIプログラミングと文字列 VCなどのWindows環境のC++では、基的に、Shift_jisをchar型で保持し、Unicodeをwchar_tで保持します。 プログラムがUnicodeに対応することには、次のような利点があります。 国際化に対応できる。 Shift_jisの範囲の文字(半角かな除く)であれば、2バイトの固定長であらわせる。 しかしながら、charを使わなければならない場面もあると思います。具体的には… 9x

    nobeans
    nobeans 2013/12/28
    文字列
  • モダン C++ プログラミング - 日本語公開記事 - Confluence

    このドキュメントはサイボウズ社内のトレーニング用に作成したものです。 作成時点では C++11 はまだあまり利用できない状況でしたので、C++98 ベースの記述になっています。 いずれ更新を予定しています。 モダンの定義モダンとはテンプレートメタプログラミング(TMP)を駆使することです。嘘です。 宗教論争に意味はないので、ここでは 「最近の C++ の仕様・機能を理解し、C より実装効率が良く不具合の少ない」 プログラミング技法を「モダン C++ プログラミング」と定義します。 つまり、不具合が少なく、かつ C にはもう戻れなくなるような効率の良さを達成するものです。 学習効率(ROI)が極めて良くないような技法(例えば TMP)は、この定義では除外されます。 勉強方法お勧めの順序は以下。決して全部を読もうとしないこと。 C++ Language Tutorial のような、あっさりした

    nobeans
    nobeans 2013/12/28
    すごく助かります
  • C++ で関数から object をどう返すか - KBDAHOLIC - やぬすさんとこ

    VC++ における NRVO について別 entry に書いた -> http://d.hatena.ne.jp/janus_wel/20100301/1267397791 昨日同じような title で entry 書いたら ( http://d.hatena.ne.jp/janus_wel/20100221/1266766850 ) comment でいいことを教えてもらった ( http://d.hatena.ne.jp/janus_wel/20100221/1266766850#c ) ので調べてみたら最終的に今回の entry の title になった。 id:k1m 、 id:tyru ありがとう。 RVO and NRVO まず klm くんの教えてくれた RVO ( Return Value Optimization の略。余談だけど Return"ed" じゃないのは "

    C++ で関数から object をどう返すか - KBDAHOLIC - やぬすさんとこ
    nobeans
    nobeans 2013/12/24
  • C++/Boost 基礎文法最速マスター - 野良C++erの雑記帳

    参考: http://d.hatena.ne.jp/faith_and_brave/20100201/1264997004 「C++0xになると、C++03 でごちゃごちゃした部分がだいぶすっきり書けるようになる」 らしいですが、C++0xを待たなくてもBoostを使えばだいぶすっきり書けるので、 BoostでのC++入門はこんな感じだよー、という気持ちで以下略。 この記事はC言語をある程度理解していることが前提です。 1. Hello World C++/Boostでの出力はC++標準の IOStream ライブラリと Boost.Format を組み合わせて行います。 例として、C言語のprintfを用いた Hello World を、C++/Boostを使って書き直してみます。 #include <stdio.h> int main() { printf( "%s\n", "Hell

    C++/Boost 基礎文法最速マスター - 野良C++erの雑記帳
  • sexyhook - Project Hosting on Google Code

    Code Archive Skip to content Google About Google Privacy Terms

  • C++の話(本当にあった怖い話)

    constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami

    C++の話(本当にあった怖い話)
    nobeans
    nobeans 2010/07/17
  • C++ における const の重要性と活用 - ニートの世紀

    const なんて知らないよ、という層の人間が一定世の中には存在するようです。 そういった人間の大多数の主張は恐らく「面倒くさい」「嫌い」とかだと思うのですが、const 性に気を配るのは C++ においてはメンバ変数を private にしないといけないことと同程度にやらないといけないことです。という話をします。 const というとまず真っ先に出てくるのは「値が変わらないことでコードが読みやすくなる」とか「参照透明性のため」とかで、参照透明とか言葉がすごく綺麗ですごいって感じだと思います。ボクは参照透明という言葉がすごく好きです。 でも C++ は現実の言語なので現実を見ましょう。そんなのどうだっていいんです。 前提として C++ はそれなりに速い何かを作るための言語である、ソースコードはコメントや何らかの形のドキュメントに勝る、という二点をあげておきます。 例えば巨大なオブジェク

    nobeans
    nobeans 2010/01/17
  • 株式会社エス・スリー・フォー » sizeofの不思議

    sizeofの不思議 はじめに Cではsizeofによって構造体がメモリ上で占める大きさ(バイト数)を知ることができます。 struct s{ int x; int y; }; ... cout << sizeof(s) << endl; 僕の愛用する処理系、Visual C++ 6.0では 8が得られました。intひとつにつき4byteを消費するからでしょう。 それではC++でのclassの大きさはどうでしょう。内包するメンバ変数それぞれの占めるバイト数の総和になるのでしょうか。 class c { int x; int y; }; ... cout << sizeof(c) << endl; 答は…やはり 8 です。でもね、C++ではいつもこうなるとは限らないのですよ。 「C++はCよりデカい」と言われることがあります。その理由のひとつがここに明らかになります。 仮想関数 上記clas

    nobeans
    nobeans 2009/12/06
  • 1