タグ

c++に関するnilabのブックマーク (204)

  • Page Redirection - GNU Project

    This page has been incorporated into another. If you are not redirected automatically, click here. For questions related to the use of GCC, please consult these web pages and the GCC manuals. If that fails, the gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer list at gcc@gcc.gnu.org. All of our lists have public archi

    nilab
    nilab 2011/11/30
    C++0x/C++11 Support in GCC - GNU Project - Free Software Foundation (FSF)
  • 久々にC++使ったら進化してて素敵になってた件 – taichino.com

    最近、数年ぶりにC++を触っているのですが、いつの間にかかなり使いやすくなっていました。まだ全容は把握できてないのですが、とりあえず印象に残った以下の項目について書いてみたいと思います。 BOOST_FOREACHとautoですっきりループ tupleで無くなる無駄な構造体 #pragma onceで楽々インクルードガード std::functionとlamda関数でコンパクトなコード typeidでリフレクション 主にC++0x周りの話だと思っていますが、勘違いしている可能性も高いです。 前置きですが、エントリ内のコードはすべてgccの4.5.0で動作確認を行っています。(mac portのgcc45パッケージをインストールしました)。またビルド時にはc++0xの使用を明示する必要があります。 $ g++-mp-4.5 -std=c++0x main.cpp 1. BOOST_FORE

    nilab
    nilab 2011/11/30
    久々にC++使ったら進化してて素敵になってた件 « taichino.com
  • C++11 FAQ

    訳者注 下記の文章は C++0x - the next ISO C++ standard の暫定勝手和訳です。 翻訳は現在進行中であり、未完成かつ不正確である可能性があります。 っていうか未完成かつ不正確です。 正しい情報を必要とされる方は、原文を当たってくださいますようよろしくお願いします。 誤訳の指摘は大歓迎です。 2010年01月06日更新 (訳注: 和訳は2010年01月21日更新) この文書 (訳注: 原文) は Bjarne Stroustrup が記述、更新している。 建設的なコメント、訂正、参考資料、提案はもちろん大いに歓迎する。 現在、著者は参考資料の充実化と清書に取り組んでいる。 C++0x は次期 ISO C++ 標準である。 現時点の 草案 を、コメント募集のため公開している。 以前の (そして現在の) 標準は、しばしば C++98 や C++03 と呼ばれる; C

    nilab
    nilab 2011/11/30
    C++11 FAQ「"C++0x"という名前は、著者やその他の人々が、C++08 または C++09 になると思っていた時の名残である」C++11 - 最新 ISO C++ 標準
  • C++ でヘッダファイルだけでグローバル変数を定義する方法 - kazuhoのメモ置き場

    今日、会社で出た話。C言語だとグローバル変数を (宣言ではなく) 定義するには、必ずソースファイル内を書かなければいけなくて面倒だけど、C++ なら簡単。テンプレートクラスを使えば、ヘッダファイルだけでグローバル変数を定義できる。以下、参考。 なので、テンプレートクラスのstaticメンバは異なる翻訳単位で複数回定義されて いても、全く同じ定義ならば、一回しか定義されていないのと同義です。 cppll:8425 Re: クラステンプレートのstaticメンバ変数 具体的なコードとしては、以下のような感じ (picojson から一部変更して引用)。 template <typename AlwaysBool> struct last_error_t { static std::string s; }; template <typename AlwaysBool> std::string l

    C++ でヘッダファイルだけでグローバル変数を定義する方法 - kazuhoのメモ置き場
    nilab
    nilab 2011/11/30
    C++でヘッダファイルだけでグローバル変数を定義する方法 - kazuhoのメモ置き場:「テンプレートクラスのstaticメンバは異なる翻訳単位で複数回定義されていても、全く同じ定義ならば、一回しか定義されていないのと同義」
  • オープンソースのSVGライブラリ: Render360 sideB

    前回、Blenderにvectexの機能を組み込んで、ようやくvectexの機能自体を改造する準備ができました。 ここで、使用するSVGファイルを指定する際にファイルセレクタを使用するようにしたり、UVマッピング以外のマッピングが使えない制限を改善したりと色々やりたいことがあるのですが、なによりもまず普通のSVGファイルならどんなものでも使用できるようにSVG描画機能そのものを改善したいと思います。 現在のvectexではフォントを使った文字、グラデーションやぼかしなど色々とSVGの仕様に対応していないため、あらかじめ文字をパスに変換しておくなどの対応をしておく必要があります。 これではかなり使いにくいので、できればInkscapeなどを使って作成したイラストのデータをそのまま利用できるようにしたいところです。 そこで次の目標として、vectexSVG描画エンジンをAGG、Expatを使

    nilab
    nilab 2011/11/18
    オープンソースのSVGライブラリ: Render360 sideB : GNOMEプロジェクトのlibrsvg、KDEのKSVG(KHTML)、QtのQtSVG、WXWindowのwxSVG
  • GitHub - dov/agg-svg: Extension of the agg svg parser from the agg distribution

    nilab
    nilab 2011/11/18
    dov/agg-svg - GitHub : agg-svg --- Extension of the agg svg parser
  • Vim で C++ のコーディングを行うなら知っておきたい10のこと - C++でゲームプログラミング

    第二弾?わたしが普段 C++ のコーディングを行っている時の機能とか、プラグインとかのまとめです。 逆にいうと、これぐらいしか知らないので、もっと便利な機能があれば教えてください。 結構ざっくりと書いたので、分からないことがあれば、コメントか Twitter でリプもらえれば反応出来るかもしれません。 まぁ『Vim でこういう事ができるんだぜー!』的な感じで読んでもらえれば幸いです。 まえがき [使用しているプラグイン] neocomplcache SingleCompile hier Unite unite-outline clang_complete 細かい設定なんかは割愛しています。 うまく動作しなかった場合は、:help や、各プラグインのドキュメントを参照して下さい。 ☆1.複数行コメント vim-user : http://vim-users.jp/2011/03/hack20

    Vim で C++ のコーディングを行うなら知っておきたい10のこと - C++でゲームプログラミング
    nilab
    nilab 2011/11/17
    Vim で C++ のコーディングを行うなら知っておきたい10のこと - C++でゲームプログラミング
  • タダで始めるC/C++ プログラミング for Windows

    1. はじめに Windows で C 言語や C++ 言語でのプログラムを作成するには以下のものが必要になります。 C/C++ コンパイラ C/C++ のコードを記述したソースファイルから実行ファイルを生成する C/C++ コンパイラ (とリンカ) が必須です。 統合開発環境 (IDE) C/C++ コンパイラとエディタさえあればプログラム開発はできますが,それだけではコマンドプロンプト (DOS 窓) でコマンドやオプションを入力しなければならず面倒です。ボタンを押すだけでコンパイルなどができる開発環境があると便利です。 テキストエディタ 統合開発環境にはソースをキーワードで色分け表示してくれるエディタが内蔵されているので必須というわけではありません。しかし,ちょっとソースファイルを見たい,とか,他人のソースを見ながらプログラミングしたい,などと言う場合にはテキストエディタを使うと便利

    nilab
    nilab 2011/11/17
    タダで始めるC/C++プログラミング for Windows
  • Apache Avro

    Apache Avro™ is the leading serialization format for record data, and first choice for streaming data pipelines. It offers excellent schema evolution, and has implementations for the JVM (Java, Kotlin, Scala, …), Python, C/C++/C#, PHP, Ruby, Rust, JavaScript, and even Perl. For Java / JVM users, find out everything you need to know about specifying a schema, (de)serializing Avro data and code gene

    nilab
    nilab 2011/11/07
    Welcome to Apache Avro! : "Apache Avro™ is a data serialization system."
  • vCard – mulberrymail.com Code

    nilab
    nilab 2011/11/02
    vCard – mulberrymail.com Code
  • [ヅ] C++ std 名前空間にある標準Cライブラリ (2011-10-31)

    nilab
    nilab 2011/10/31
    ヅラッシュ! - C++ std 名前空間にある標準Cライブラリ
  • [ヅ] はじめての C++ namespace 名前空間サンプル (2011-10-31)

    nilab
    nilab 2011/10/31
    ヅラッシュ! - はじめての C++ namespace 名前空間サンプル
  • 【PHP/C++】C++でPHP extension を書く際の注意事項 | ITベンチャーで働くエンジニアのメモ帳

    nilab
    nilab 2011/10/31
    【PHP/C++】C++でPHP extension を書く際の注意事項 - 不動産に興味を持ち始めたWebエンジニアのメモ帳
  • PHP Extension - PukiWiki

    C++PHP Extension を書く方法 † config.m4 に CC, CXX 変数を設定。 CC=/usr/bin/gcc CXX=/usr/bin/g++ source file の拡張子を .c から .cc もしくは .cpp にする。 source file の include を extern "C" 指定する。 extern "C" { #include "php.h" #include "php_ini.h" #include "ext/standard/info.h" #include "php_helloworld.h" } ↑ ひな型を作成 † 適当な作業ディレクトリに移動して、 PHP Extension を作成するためのひな型を作る。 試しに helloworld を作ってみる。 ~/src/php-5.2.1/ext/ext_skel --ext

    nilab
    nilab 2011/10/31
    PHP Extension - PukiWiki : C++ で PHP Extension を書く方法
  • [ヅ] Mac OS X に Eclipse CDT をインストールする (2011-10-30)

    nilab
    nilab 2011/10/30
    Mac OS X 上で C++ のコードを書ける環境を作る。 / ヅラッシュ! - Mac OS X に Eclipse CDT をインストールする
  • C++の基礎 : const 修飾子

    BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア / 携帯 Java アプリ圧縮ツール : 株式会社 ソフィア・クレイドル English FAQ C++の基礎 : const 修飾子 const 修飾子 C++ 言語には、定数を表現するための const 修飾子が用意されています。ここでは const 修飾子のさまざまな使い方について説明します。 const 修飾子を使う目的は、コンパイラによる最適化を促進するためと、プログラムの意味をより明確にすることです。 const 変数 変数の宣言に const をつけることで、その変数の値が書き換えられないようにできます。 const SIntN max_foods = 120; max_foods = 130; // コンパイル エラー const 引数 関数の引数に const を指定すると、その関数の中で

    nilab
    nilab 2011/10/26
    C++の基礎 : const 修飾子
  • RVO (Return Value Optimization)についてのメモ - nokunoの日記

    Efficient C++を呼んでいたら,RVO (Return Value Optimization)が適用されるコードと適用されないコードの例が紹介されていました.RVOというのは,C++で関数がオブジェクトを返す場合に,一時オブジェクトの生成とコピーを抑制するコンパイラの機能です.非常に興味深いですね.Amazon.co.jp: Efficient C++パフォーマンスプログラミングテクニック: ダブ ブルカ, デビット メイヒュ, 浜田 光之, Dov Bulka, David Mayhew, 浜田 真理: RVOが適用されないコード Complex operator+ (const Complex& a, const Complex& b) { Complex retVal; retVal.real = a.real + b.real; retVal.imag = a.ima

    nilab
    nilab 2011/10/20
    RVO (Return Value Optimization)についてのメモ - nokunoの日記 : 適用されるコードと適用されないコードの例 : C++で関数がオブジェクトを返す場合に,一時オブジェクトの生成とコピーを抑制するコンパイラの機能
  • Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!

    kazuhoさんがやってくれました。 ずいぶん前からjsonをC++でパース(SAXじゃなくてDOM)するのに小さいライブラリないかなーと思ってました。個人的にはjson-cというのを使ってたのですが、幾らか気に入らない所があったりビルドが少し手間だったりしていました。STLしか使わなくてvectorとかmapで表現されるツリー構造な物が欲しいなぁって思ってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、githubにあるjsonxxとかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から格的に書き始めてついさっき出来上がりました。速いw 名前はpicojson とても小さく、実装コードだと300数十ステップ程です。しかもヘッダファイルだけなので管理が楽です。 試しにwassrのpubl

    Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!
    nilab
    nilab 2011/10/19
    Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!
  • Kazuho@Cybozu Labs: 今更 C++ で JSON パーサ「picojson」を書いたわけ

    既に mattn さんが、「Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!」で紹介してくださっています (mattn さん、アドバイス&バグ情報ありがとうございます!) が、いまさら C++ で JSON パーサを作りました。それは、以下の3点を満たすものがなかったから。 ヘッダファイル only boost 等、他の重たいライブラリに依存しない array や object が STL にマッピングされる コードは、coderepos に置いてありますので、よろしければお使いください (picojson.h)。 なお、現時点での制限事項として、 \n や \r, \uXXXX といったエスケープの処理が未実装rev. 34232 で対応しました (含サロゲートペア) 空白文字の判断基準が RFC と異なるrev. 34277 で空白と

    nilab
    nilab 2011/10/19
    Kazuho@Cybozu Labs: 今更 C++ で JSON パーサ「picojson」を書いたわけ
  • CodeProject: JSON Spirit: a C++ JSON Parser/Generator Implemented with Boost Spirit. Free source code and programming help

    Download source - 52.5 KB Table of Contents Introduction Using the Code JSON Spirit Value Reading JSON Writing JSON Error Detection Unicode Support Std::map Implementation Stream_reader Class Compiling and linking Reducing Build Times Using JSON Spirit with Multiple Threads Advanced Container Constructor (Advanced) Variant Constructor (Advanced) History Introduction JSON is a text file format simi

    nilab
    nilab 2011/10/19
    JSON Spirit: A C JSON Parser/Generator Implemented with Boost Spirit - CodeProject