タグ

c++に関するfunayoiのブックマーク (8)

  • C++11参考書の公開:C++11の文法と機能

    C++11の参考書をGitHubで公開する。 GitHub: EzoeRyou/cpp-book GitHubからzipでダウンロード GitHub Pagesでの閲覧:C++11の文法と機能 序 書はC++11のコア言語の文法と機能を、標準規格書に従って解説したものである。正式なC++規格書として発行された後の、ひとつ後のドラフト規格、N3337 を参考にしている。ドラフト規格を参考にした理由は、正式なC++規格書は、個人での入手が煩わしいためである。読者に入手が困難な資料を元に記述された参考書は価値がない。そのため、読者が容易に入手できるドラフト規格のうち、正式なC++規格書とほとんどかわらないN3337を参考にした。 書の対象読者は、C++を記述するものである。C++実装者ではない。そのため、サンプルコードを増やし、冗長な解説を増やし、C++コンパイラーを実装するための詳細な定義

    funayoi
    funayoi 2013/10/27
  • C++のテンプレートでラムダ計算と型推論 - 貳佰伍拾陸夜日記

    C++のテンプレートを, コンパイル時に走るプログラムを記述するための言語だと思うと, この言語はチューリング完全なので, 当然ラムダ計算のインタプリタを実装できるし, そのラムダ計算の項の型を推論することもできる. できるからと言って馬鹿みたいにやってしまったという話. ソースコードは末尾. テンプレートメタプログラミング テンプレートをプログラミング言語だと思うと, 構文はともかく, 副作用がなく関数(っぽいもの)を淡々と定義してパターンマッチして再帰呼出しして, という感じでとても関数型っぽい. 関数と返り値 テンプレートメタプログラミングではテンプレートクラスを関数だと思って使う. そして返り値はtypedefして返す. たとえば任意の型S, Tを受け取って前者を返す関数firstは template<typename S, typename T> struct first { t

    C++のテンプレートでラムダ計算と型推論 - 貳佰伍拾陸夜日記
    funayoi
    funayoi 2011/11/02
  • dag_vector: ランダムアクセス可能な圧縮配列 - Preferred Networks Research & Development

    こんにちは、この夏はシルキードライで乗り切りたい岡野原です。 今日は最近公開したC++のオープンソースであるdag vectorについて紹介します。 github: dag_vector ライセンスは修正BSDライセンスです。 dag vector (direct accessible gamma code vector) は値を圧縮して格納したまま任意の場所の値を高速に参照可能な配列ライブラリです。しかもデータ末尾への追記が可能です。 dag vectorはstd::vectorのように利用できます。下にいくつか例を見ていきましょう。 dag_vectorの例 #include "dag_vector.hpp" // dag_vectorは0以上の正整数の配列を扱う配列。 dag_vector dv; // 値はいつでも追加可能。追加された値は圧縮して格納される // 正整数xは2lg(

    dag_vector: ランダムアクセス可能な圧縮配列 - Preferred Networks Research & Development
  • C++の文法が複雑過ぎると話題に(俺の中で) | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー C++の言語仕様を個別に関連づけながら図にしたのを見つけたんだけど,これがすごい。George Mason大学のSeal Lukeさんいわく「正しくかつ完璧なC++パーサーを作るのは数学的に不可能」なのだそうで,さもありなんと頷ける。 余りに巨大なので縮小してる。クリックで元画像を開きます。 同じようにして作ったC言語の文法図はこんなかんじ。 C++を華麗に使いこなせるのは,Googlerみたいに頭のよい人だけなのかも...。

    funayoi
    funayoi 2011/06/16
  • mikeash.com: Friday Q&A 2011-06-03: Objective-C Blocks vs. C++0x Lambdas: Fight!

    Blocks are perhaps the most significant new language feature introduced by Apple in years, and I've written a lot about them before. The new C++ standard, C++0x, introduces lambdas, a similar feature. Today, I want to discuss the two features and how they are alike and how they differ, a topic suggested by David Dunham. Terminology I will refer to Apple's blocks extension as "Objective-C blocks" e

  • 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

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

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

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

    openFrameworks is an open source C++ toolkit for creative coding. download Grab the most recent release (0.12.0) and follow the setup guide to get openFrameworks running. documentation Reference for openFrameworks classes, functions and addons. You can also check the tutorials section. forum The forum is a place to meet other people working with openFrameworks. It's a place to share your work, or

  • 1