タグ

C++に関するWackyのブックマーク (497)

  • [迷信] 非局所オブジェクトは外部結合 | 株式会社きじねこ

    株式会社きじねこは大阪のソフトウェア開発会社です。組込み系・業務系のプログラム開発から電子回路の設計までおまかせください。 今回のタイトルはやや分かりにくいかもしれません。「非局所オブジェクト」というのは、関数の外で宣言したオブジェクトのことです。いわゆる「グローバル変数」とほぼ同じと考えてください。 さて、関数の外で宣言された「非局所オブジェクト」ですが、static 記憶クラス指定子が付いていれば内部結合になることはいうまでもありません。今回話題にするのは、記憶クラス指定子が付いていないデフォルトの状態での結合がどうなるかです。 結論からいうと、非局所オブジェクトが外部結合になるか内部結合になるかは、C と C++ では異なります。これは、C と C++ の間の重要な非互換性のひとつです。 まず、C の場合には、明示的に static 記憶クラス指定子を付けない限り、非局所オブジェクト

    Wacky
    Wacky 2009/06/10
    C の場合には、明示的に static 記憶クラス指定子を付けない限り、非局所オブジェクトは必ず外部結合になります。それに対して、C++ では、const 修飾子が付いた非局所オブジェクトは、デフォルトでは内部結合になります
  • [迷信] コンストラクタから例外を送出してはならない | 株式会社きじねこ

    株式会社きじねこは大阪のソフトウェア開発会社です。組込み系・業務系のプログラム開発から電子回路の設計までおまかせください。 比較的有名なサイトで「コンストラクタからの例外送出」が「禁じ手」として紹介されていることもあり、また、最近ではその内容を再編集した書籍が出版されたこともあって、コンストラクタから例外を送出すべきではないと考える人は多いようです。 その根拠となっているのは、コンストラクタから例外を送出した場合、デストラクタが呼ばれないためにリソースリークにつながるというものです。これは、次のようなケースを想定しているものと思われます。 foo::foo() : a(new A), b(new B) { } 確かに、a または b のうち、後から初期化される側で例外が送出されると、他方が解放される機会が失われるため、リークにつながります。しかし、 void foo() { A* a =

    Wacky
    Wacky 2009/06/10
    結論としては、コンストラクタが失敗した場合には例外を送出することによってそれを通知すべきであり、それ以外の一般的な方法はありません
  • Account Suspended

    Account Suspended This Account Has Been Suspended

    Wacky
    Wacky 2009/06/10
    C99 に対応していない処理系では、main の返却値の型はやはり int でなければならないのです。
  • Account Suspended

    Account Suspended This Account Has Been Suspended

    Wacky
    Wacky 2009/06/10
  • ホワット・ア・ワンダフル・ワールド GLib の MinGW + MSYS 環境へのインストール

    GObject という,独自のクラスシステムを C で全部構築したという素敵なライブラリがあります.GLib に含まれています.完全に動的なクラスシステムとなっているので,実行時にクラスやインタフェースの情報を参照したり,変更したりが可能です.C++ や Objective-C と違って,構文は C のままなので,ものすごく冗長になります. そこで C# like な構文から GLib を使う C ソースを生成する Vala という言語があるそうです.twitter で tkng さんに教えてもらいました. Vala - Compiler for the GObject type system GLib は Gtk の基礎となっている (というか Gtk から分離された) ライブラリなのですが,Mac OS X が Objective-C を採用したように,動的なクラスシステムを持つ言語の

    Wacky
    Wacky 2009/06/08
  • ソフトウェア高速化の鍵は「並列化」:いま注目される並列化技術を知る | OSDN Magazine

    従来は高級サーバーでしか採用されていなかったマルチCPU/マルチコアが、一般的なPCにも普及しつつある。このようなマルチCPU/マルチコア環境において、高速に動作するアプリケーションを開発するために注目されているのが「並列化」技術である。記事では、この並列計算の基的な考え方やそのメリット、利用できるライブラリなどについて紹介する。 ソフトウェアをより高速に動作せたい、というのはすべてのソフトウェア開発者にとって共通の悩みだろう。ユーザーにとって、高速なソフトウェアは作業効率が向上するだけでなくコスト削減にもつながる。そして、ソフトウェアを高速に動作させるための技術として現在注目を浴びているのが「並列化」である。 並列処理という概念自体は、さほど新しいものではない。スーパーコンピュータを用いたHPC(High-Performance Computing)の分野では、従来から高速化のために

    ソフトウェア高速化の鍵は「並列化」:いま注目される並列化技術を知る | OSDN Magazine
    Wacky
    Wacky 2009/06/04
    Threading Building Blocks(TBB)は、WindowsやLinux、Mac OS XやFreeBSDといったUNIX系OSで利用できるC++向けの並列プログラミングライブラリ
  • OpenCVをVisual Studioから使う - niitsuma blog

    参考 http://madeira.cc.hokudai.ac.jp/blog/articles/2007/07/27/opencv-%E3%81%9D%E3%81%AE1-%EF%BD%9E%E5%B0%8E%E5%85%A5%E7%B7%A8%EF%BD%9E http://www.nogutetu.com/2009/01/opencv-visual-studio.html opencvへのパスを通す [ツール(T)]→[オプション(O)]→[プロジェクトおよびソリューション]→[VC++ディレクトリ] [プラットフォーム]「Win32」 [ディレクトリを表示するプロジェクト] 「インクルードファイル」を選択し,以下を追加. C:\Program Files\OpenCV\cv\include C:\Program Files\OpenCV\cvaux\include C:\Progr

    OpenCVをVisual Studioから使う - niitsuma blog
    Wacky
    Wacky 2009/04/19
  • 『C++テンプレートテクニック』もうすぐ発売です。 - Faith and Brave - C++で遊ぼう

    私とεπιστημηさんの2人で、C++テンプレート書きました。 (ぼくは著者名を名で載せてます) 発売日は2009/04/24(金)で、税込2,940円になります。 内容は、テンプレートの基礎から始まり、テンプレートメタプログラミング、 Boost C++ Librariesの中で使われている手法、C++0xでテンプレートがどのように進化していくか等を紹介しています。 屋とかAmazonで見かけたら買ってやってください。

    『C++テンプレートテクニック』もうすぐ発売です。 - Faith and Brave - C++で遊ぼう
  • 俺はこの本を楽しみにしていましたよ - 神様なんて信じない僕らのために

    きじねこの高木さんのです。 http://www.kijineko.co.jp/node/444 組込み現場の「C++」プログラミング 明日から使える徹底入門 作者: 高木信尚出版社/メーカー: 技術評論社発売日: 2009/03/23メディア: 単行購入: 3人 クリック: 16回この商品を含むブログ (10件) を見る いやはや、これをどういったら良いのでしょう? C/C++で組込をやっている人は必読であり、 そうでない人には全く用事がないという、そんなです。 自分が特に良いなと思ったのは、 例外を有効にしている際に、組込環境にとってどのような影響があるかということ。これはでかい。 例外なんて切っちゃえ、と思っている自分ですが、 例外を適切に使えるなら例外は正義です。 しかし、大抵の人が使いこなせません。使いこなせないなら、使わないでおくのが正義というものです。 例外の他にも、C

    俺はこの本を楽しみにしていましたよ - 神様なんて信じない僕らのために
    Wacky
    Wacky 2009/04/03
    例外を有効にしている際に、組込環境にとってどのような影響があるかということ。
  • Account Suspended

  • VISUAL C++ 2010 と Parallel Pattern Library

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 VISUAL C++ 2010 と Parallel Pattern Library Kenny Kerr このコラムは、Visual Studio 2010 のプレリリース バージョンに基づいています。記載されているすべての情報は、変更される場合があります。 目次 言語拡張 並列アルゴリズム タスクとタスク グループ Visual C++ は、Visual Studio 2010 のリリースで大幅にアップグレードされます。言語やライブラリの新しい機能の多くは、開発者の要望をより簡単に、より自然にコードで表現できるようにすることだけを考えて設計されています。しかし、これまでと同様、これらの機能を組み合わせるこ

    VISUAL C++ 2010 と Parallel Pattern Library
    Wacky
    Wacky 2009/03/05
    アプリケーションに並列処理を導入するために Microsoft が標準 C++ ライブラリを自然に補完する形で C++0x 標準の上に開発した Parallel Pattern Library (PPL) について説明します。
  • 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回の割り当て (

    Wacky
    Wacky 2009/02/12
    結論からいうと、 vector の reserve() は容量を減らすことはありません。
  • LokiはC++0xから流行ると思う - Faith and Brave - C++で遊ぼう

    LokiはPolicy-based Designのライブラリとして有名ですが、 その設計にはテンプレート・テンプレート・パラメータを多用されています。 C++03の段階では以下のようなテンプレート・テンプレート・パラメータを用意しても template <template <class T> class Container> class X { Container<int> cont_; }; std::vectorを渡すとエラーになってしまい X<std::vector> x; // エラー! std::vectorのテンプレートパラメータとパラメータ数を合わせるために 以下のようにアロケータを受け取るためのパラメータを追加しないといけません。 template <template <class T, class Alloc=std::allocator<T> > class Conta

    LokiはC++0xから流行ると思う - Faith and Brave - C++で遊ぼう
    Wacky
    Wacky 2009/02/05
  • プログラミング言語C with lambda(仮) プロジェクト日本語トップページ - OSDN

    C with lambdaはC言語ベースのプログラミング言語で、lambdaなどの機能を使うことができます(現在、制限付きlambdaのみ)。 C言語コードへのトランスレータとして実装されており、上位互換性があります。 質問などは daiki41{@}gmail.com にて受け付けています。

    プログラミング言語C with lambda(仮) プロジェクト日本語トップページ - OSDN
    Wacky
    Wacky 2009/01/29
    C with lambdaはC言語ベースのプログラミング言語で、lambdaなどの機能を使うことができます(現在、制限付きlambdaのみ)。 C言語コードへのトランスレータとして実装されており、上位互換性があります。
  • interfaceとダック・タイピング

    目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 1078 記事 - 2 コメント - 24647 トラックバック - 363 ニュース 著作とお薦めの品々は 著作とお薦めの品々は 東方熱帯林へ。 わんくま 東京勉強会#2 C++/CLI カクテル・レシピ 東京勉強会#3 template vs. generics 大阪勉強会#6 C++むかしばなし 東京勉強会#7 C++むかしばなし 東京勉強会#8 STL/CLRによるGeneric Programming TechEd 2007 @YOKOHAMA C++C++/CLI・C# 適材適所 東京勉強会#14 Making of BOF 東京勉強会#15 状態遷移 名古屋勉強会#2 WinUnit - お気楽お手軽UnitTest CodeZine Cで実現する「ぷちオブジェクト指向」 CUnitによるテスト駆

    Wacky
    Wacky 2009/01/28
    C++ではtemplateを使ったダック・タイピングって手法があります。
  • Java - JNI - C/C++ デバッグ入門 - mir the developer

    明けましておめでとうございます。今年も宜しくお願いします。 というわけで昨年末に調べていたJNIプログラムデバッグ方法のまとめ。 これが一番参考になった。Debugging integrated Java and C/C++ code やりたい事 JNIプログラムのデバッグをしたい(javaからJNI経由で呼ばれたC/C++プログラムのデバッグをしたい) CUI環境で完結したい(対象マシンはサーバで遠隔地にありGUIは使用不可) まとめ こんな感じ。 javac -g gcc -g JPDA(java) jdb -attach gdb --pid= ※JPDAはJava Platform Debugger Architectureの略、JVMの機能の一つ。jdbはJDK付属のJava用デバッガ。gdbはいつものGNU Debugger。 senna-javaでの例 JavaプログラムとC/

    Java - JNI - C/C++ デバッグ入門 - mir the developer
    Wacky
    Wacky 2009/01/05
  • Thriftを使おう(2) - みずぴー日記

    30分プログラム、その374。Thriftを使ってみよう、その2。 インストールについては、Thriftを使おう(1) - みずぴー日記を参照。 IDLを書こう fact.thrift service fact{ i32 fact(1: i32 n) } スケルトン生成 $ thrift --gen cpp --gen py fact.thrift Pythonじゃなくてpyなのが、ちょっとだけ気にくわない。 C++(サーバ) fact_server.skelton.cppを適当に編集する。 class factHandler : virtual public factIf { public: factHandler() { // Your initialization goes here } int32_t fact(const int32_t n) { // Your implemen

    Thriftを使おう(2) - みずぴー日記
  • 自然な思考で当たり前のプログラミングを~Bjarne Stroustrup氏との対話~

    はじめに 連載では、プログラミング言語「C++」を設計し、最初に実装したBjarne Stroustrup氏を取り上げてきました。同氏は「C++」を設計しただけではなく、20年以上の長期に渡りその発展のために努力してきました。筆者は、連載をこれまで閲覧されてきた皆さんが“20年”という数値をどのように解釈されているのか大変気になっています。 国際標準プログラミング言語C++にはSTL(Standard Template Library)と呼ばれるライブラリが採用されています。STLを創案したのはAlexander Stepanovという人ですが、同氏はStroustrup氏の求めに応じて「Short History of STL」(PDF)という小論文を起草し、STLの歴史を手短に整理しています。その論文に目を通してみると、『STLは私の20年間の思索の結論である』という一文に出会うこ

    自然な思考で当たり前のプログラミングを~Bjarne Stroustrup氏との対話~
    Wacky
    Wacky 2008/12/25
  • 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
  • Google C++スタイルガイド 日本語訳

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

    Wacky
    Wacky 2008/12/22