タグ

c++に関するgymnoのブックマーク (142)

  • C++の創造神 - @IT自分戦略研究所

    連載を初めて読む人へ:先行き不透明な時代をITエンジニアとして生き抜くためには、何が必要なのでしょうか。それを学ぶ1つの手段として、わたしたちはIT業界で活躍してきた人々の偉業を知ることが有効だと考えます。連載では、IT業界を切り開いた117人の先駆者たちの姿を紹介します。普段は触れる機会の少ないIT業界歴史を知り、より誇りを持って仕事に取り組む一助としていただければ幸いです。(編集部) 連載は、2002年 ソフトバンク パブリッシング(現ソフトバンク クリエイティブ)刊行の書籍『IT業界の冒険者たち』を、著者である脇英世氏の許可を得て転載しており、内容は当時のものです。 ビアルネ・ストラウストラップ(Bjarne Stroustrup)―― AT&T研究所研究部門長 C++開発者 C++言語といえば、ビアルネ・ストラウストラップが有名である。1985年ごろ、最初にこの名前に出合っ

  • C++ のプログラムのデバッグを楽にする方法

    Google が公開しているソフトウェアの解説シリーズ(→その1 , その2)の続きです。今回は google-glog を使ってスタックトレースを表示する方法についてご紹介します。 C++ でプログラムを書いているとよく遭遇するのがセグメンテーション違反というエラーです。不正なアドレスへのアクセスなどによりセグメンテーション違反が起きると、通常、 UNIX 系の OS では SIGSEGV というシグナルによってプログラムが終了するとともに、 core というファイルが作られます。 core ファイルにはデバッガから参照できるいろいろな情報が残っていますが、多くの場合に役に立つのは、スタックトレースという情報です。スタックトレースを見れば、プログラムがどこでクラッシュしたのか、どのような関数を経由してそこにたどり着いたのかがわかります。プログラムがクラッシュした箇所を特定できれば、単純な

    C++ のプログラムのデバッグを楽にする方法
  • freeml - 無料で簡単!携帯対応!メーリングリストを楽しもう!

    住まい 住宅ローン 引越し 暮らし 電気・ガス インターネット ウォーターサーバー 将来に備える 不動産投資 学資保険 投資信託 積立NISA ライフスタイル お酒 グルメ ビューティー アウトドア freeml(フリーエムエル)は、「時代と生活の変化」に対し、「free & meaningful life」のコンセプトのもと、 「新しい生活をはじめる羅針盤」となるような情報メディアを目指しております。「住む場所を探し」「生活インフラを整え」「将来の準備をする」… 生活の中には多くの選択肢が存在し、ひとつひとつの選択の積み重ねによって、よりfree(開放的)でmeaningful(有意義)な生活が形成されていきます。専門家の方々のご協力を交えた当サービスの情報が、届いた方の「よりお得な」「より自分にあった」「より納得のいく」選択に繋がればと願っております。

    freeml - 無料で簡単!携帯対応!メーリングリストを楽しもう!
    gymno
    gymno 2009/03/17
  • C++ の string と vector の reserve() の挙動 - bkブログ

    C++ の string と vector の reserve() の挙動 C++ の string と vector には前もって容量を確保するための reserve() というメンバ関数があります。何気なく使っていた関数ですが最近になって興味深い挙動に気づきました。 reserve() の基 string と vector の reserve() は前もって容量 (capacity) を確保しておくためのメンバ関数です。前もって容量を確保 (reserve) しておけば、データの追加時に発生する再割り当て (reallocation) を防ぐことができ、効率的です。 たとえば、何もしないで文字列に 1,000文字追加した場合、(内部的に倍々で容量を増やしていくため)10回程度の再割り当てが発生しますが、 s.reserve(1000) のように容量を確保しておけば 1回の割り当て (

    gymno
    gymno 2009/02/13
  • カプセル化、情報隠蔽、データ隠蔽 - ぐるぐる~

    あちこちのサイトを見てると、間違った解釈をしてるのが多い。カプセル化なんて、情報隠蔽まで含んでるのが常識になりつつあるような。。。ここまで一般化してると情報隠蔽してるのがカプセル化というのが常識なのかも。 カプセル化・情報隠蔽・データ抽象化 - 今日の役に立たない一言 − Today’s Trifle! − カプセル化と情報隠蔽、データ隠蔽の違いがよくわからくなったので、手持ちので調べてみた。 基準 基準としては、 カプセル化、情報隠蔽、データ隠蔽の関係 カプセル化は隠蔽を含んでいるかどうか 対象はクラスのみか、そうでないか などなど。 一番目はそのまんま。二番目は、 // 隠蔽せずともカプセル化か class Hoge { int hoge; // なんかhogeを使うメソッド } // 隠蔽しなければカプセル化ではないか class Piyo { private int piyo;

    カプセル化、情報隠蔽、データ隠蔽 - ぐるぐる~
  • 【ハウツー】Cアプリを高速化せよ! - 正式リリースされたgoogle-perftoolsを試す (1) google-perftoolsとは | エンタープライズ | マイコミジャーナル

    google-perftoolsはGoogleによって提供されている、C/C++アプリケーションのパフォーマンスを改善するための開発ツールキットである。2005年3月に初めて公開され、およそ4年を経て7日に正式版がリリースされた。The BSD Licenseの下で提供されており、LinuxをはじめとしてFreeBSD、Mac OS X、Solaris 10、Windows XPなど、各種プラットフォームでの動作が確認されている(ただし、Linux以外については一部機能を除く)。 google-perftoolsには次に挙げる4つのツールが含まれている。 高速メモリアロケータTCMalloc ヒープチェッカー ヒーププロファイラ CPUプロファイラ TCMalloc(Thread-Caching Malloc)は通常のmallocよりも高速なメモリ割り当てを実現するライブラリであり、テスト

  • C言語: 実行時間測定の方法

    C言語において実行時間を測定する為の方法はいくつかある。gettimeofday, clock, getrusage, timesを利用する方法である。ここではこれらの方法について検証してみる。これは2005/12/30時点での情報であり、古い亊が考えられるので注意して頂きたい。さらに、内容のほとんどはmanを移しただけなので、正確な情報を得るためにそれぞれの関数のmanを見ることを強く推奨する。 System: Linux 2.6.12 glibc: glibc 2.3.5-1ubuntu12 gettimeofdayを使用する方法 通常はこの関数を使用するのをお勧めする。 gettimeofdayはSVr4, BSD 4.3準拠である。返り値の型はsys/time.hに定義されるstruct timevalで有る。

  • Google C++スタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • C++0xのマルチスレッド機能

    はじめに C++の新しい標準規格である「C++0x」の大きな新機能の1つが、マルチスレッド処理のサポートです。 従来のC++では、マルチスレッド機能は標準規格の拡張としてコンパイラごとに提供されていたため、細かな部分がコンパイラやプラットフォームによって異なっていました。しかしC++0xでは、すべてのコンパイラが同じメモリモデルに準拠し、同一のマルチスレッド機能を利用できることになります(ただし、従来同様の拡張をコンパイラが独自に提供することも可能です)。 開発者の立場からすると、マルチスレッドのコードを別のコンパイラやプラットフォームへ移植するときの手間を大きく省くことができます。複数のプラットフォーム向けの開発を行う場合でも、種々雑多なAPIや構文をいくつも頭に入れておく必要がありません。 新しいスレッドライブラリの中心を担うのは、実行スレッドを制御するstd::threadクラスです

    C++0xのマルチスレッド機能
  • C++ 12年ぶりに次世代スタンダードへ - "C++0x" 策定進み草案公開へ | エンタープライズ | マイコミジャーナル

    The C++ Programming Language プログラミング言語C++は1998年に発行され2003年に改訂された国際標準ISO/IEC 14882を仕様として採用している。ISO/IEC 14882はC++の言語仕様と標準ライブラリの双方を規程しており、1998年に規程されたものは通称C++98、2003年に改訂されたものは通称C++03と呼ばれている。現在、JTC1/SC22/WG21 - The C++ Standards Committeeにおいて次期C++仕様"C++0x"の策定が進められている。最終的に12年ぶりに新しいC++が登場ということになりそうだ。 C++0xはC++98/03との互換性は確保しつつ、言語仕様と標準ライブラリの双方の規約を改訂するもので、新しい機能として並列プログラミングのサポートやプログラミングの簡素化、関数プログラミング機能の強化、ジェネ

  • 開発者には”プロ意識”が必要である~Bjarne Stroustrup氏との対話~

    はじめに 「弊社ではありえないプロジェクトが突如降って湧いてくるのが常態化しています。それでもなんとかなっているのです!」 これは、ある著名な企業のプロジェクトマネージャが筆者に語った言葉です。その社名は、ほぼ毎日のように巨大マスコミに登場していることもあり、世間一般には時代の先頭を走る優良企業の1つと考えられているはずです。 この能弁なプロジェクトマネージャが引率してきた10人ほどの若いプログラマたちは、終始押し黙っていたのを今でも鮮明に記憶しています。著名な企業を支えるありえないプロジェクトをなんとかこなす人々。筆者は彼らの作業風景を想像しながら、その胸中が大変気になりました。 C++を設計・実装したStroustrup氏は、ソフトウェア業界の未熟さを指摘すると共に、”プロ意識”の重要性を強調してやみません。 今回の質問意図 既に紹介しているように、Stroustrup氏はC++入門書

    開発者には”プロ意識”が必要である~Bjarne Stroustrup氏との対話~
  • C++0xの言語拡張まとめ(※随時更新) - Faith and Brave - C++で遊ぼう

    C++0xの概要はこちら ・Angle bracket テンプレートの連続した山カッコの問題の解決 ・初期化子リスト ユーザー定義のクラスで配列のような初期化構文を実装可能になる ・Uniform initialization コンストラクタの構文と初期化子リストの構文が一様になる ・デリゲーティング・コンストラクタ コンストラクタから他のコンストラクタを呼び出せる ・auto 型推論 ・記憶クラス指定子としての auto の削除 autoキーワードの意味が変更になるため、下位互換がなくなる ・decltype sizeofの型版 ・Template Aliases テンプレートを使用して型の別名を付けることができる。いわゆるtemplate typedef ・拡張sizeof 構造体/クラスのメンバをインスタンス化せずにsizeofすることが可能になる ・nullptr ヌルポインタを表

    C++0xの言語拡張まとめ(※随時更新) - Faith and Brave - C++で遊ぼう
    gymno
    gymno 2008/09/17
  • RealLib ではじめる誤差ゼロ実数計算 - 2008-09-09 - ひとり勉強会

    RealLib のソースコード読みを始めるはずだったんですが、なんだか全然進んでないので適当なまとめエントリでお茶を濁します! RealLib が普通にかっこよすぎるので紹介しまくりたくなりましたので紹介記事です。 実数計算と誤差 たいていのプログラミング言語の「実数 = 浮動小数点数」の計算には「誤差」があります。たとえばPythonのばあい: Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> 0.1 + 0.1 + 0.1 - 0.3 5.5511151231257827e-017 0.1 を 3 回足しても 0.3 にはな

    RealLib ではじめる誤差ゼロ実数計算 - 2008-09-09 - ひとり勉強会
  • More C++ Idioms - Wikibooks

    C++ はあまりに『熟練者に優しく』なってしまった」(C++ has indeed become too "expert friendly") Stroustrup 氏の言は真実である。なぜなら熟練者は言語のイディオムに深く精通しているからである。プログラマが理解するイディオムの増加に従って、言語は彼あるいは彼女にとってよりフレンドリーになる。この open content book の目的はほどほどに C++ に精通しているプログラマに対して現代的な C++ のイディオムを提示し、C++ をよりずっとフレンドリーに感じるレベルにまで知識を引き上げる助けと成る事である。書は熟練した C++ プログラマが C++ を使ってプログラミングや設計を行う際に用いる事の多い再利用可能なイディオムの網羅的なカタログと成るよう意図されている。これは、それらのテクニックや語彙をひとまとめにしようという

  • http://ml.tietew.jp/cppll/cppll/thread_articles/11078

    gymno
    gymno 2008/08/28
  • あなたはC++ の発明者? それとも創造者?〜Bjarne Stroustrup氏との対話〜:CodeZine

    はじめに 「Bjarne Stroustrup氏との対話」連載を担当することになりました、豊田孝と申します。よろしくお願いいたします。 対話の相手であるBjarne Stroustrup氏は、プログラミング言語「C++」を設計し、最初に実装した人です。それだけでなく、同氏はC++を国際標準プログラミング言語の地位に付かせました。大変なエネルギーの持ち主です。 筆者はこの数年、「同氏の生き方から何かを学べるのではないか」と考えてきました。その考えは日毎に熱を帯び、「学べるはずだ!」、そしてついには、「わが国の開発者に、同氏の考え方と生き方ぜひお伝えしたい!」へと変化し今回の連載を始めるに至りました。 稿でのStroustrup氏との対話はメール交換を通して行われます。基的には、筆者が質問文を用意し、Stroustrup氏がその質問に対して高所からコメントを寄せることになります。C++言語

  • グーグル、また基盤技術の1つをオープンソース化 − @IT

    2008/07/08 グーグルは7月7日、同社の基盤を支える要素技術の1つ「Protocol Buffers」をオープンソースで公開した。Protocol Buffersはさまざまな構造化データを言語に非依存な形で定義し、利用するためのソフトウェア。JavaC++Pythonで利用でき、定義したデータは各言語のクラスライブラリにコンパイルされるという。例えば、いくつかの32ビット整数やストリングからなるデータ型を「.proto」というファイルで定義しておけば、このデータ型で定義されるメッセージストリームを、各言語から利用できるという。 オープンソース化を担当した同社ソフトウェアエンジニアのケントン・バーダ(Kenton Varda)氏によれば、Protocol Buffersは、XMLやIDLで満たせないニーズを満たすものだという。「XMLは優れているが、グーグルで扱うデータ量はXML

    gymno
    gymno 2008/07/10
    Protocol Buffers
  • Google Test、Google C++テストフレームワーク登場 | エンタープライズ | マイコミジャーナル

    Google, Testing Technology Team, Zhanyong Wan氏は4日(米国時間)、Google Open Source BlogにおいてGoogle C++ Testing Frameworkを公開したことを発表した。Google C++ Testing Framework (以降、Google Test)は複数のOS (LinuxMac OS X、WindowsWindows CE、Symbian)でC++テストコードを作成するためのフレームワーク。xUnitアーキテクチャをベースに開発されている。 Google TestはもともとGoogleの社内で開発されたC++テストフレームワーク。今回FLOSSプロダクトとして公開されることになった。ライセンスにはThe BSD License (3条項版)が採用されており、組み込み用途でも採用しやすくなっている

  • C++ Style Guide

    Benjy Weinberger Craig Silverstein Gregory Eitzmann Mark Mentovai Tashana Landray This style guide contains many details that are initially hidden from view. They are marked by the triangle icon, which you see here on your left. Click it now. You should see "Hooray" appear below. Hooray! Now you know you can expand points to get more details. Alternatively, there's an "expand all" at the top o