タグ

c++に関するykotのブックマーク (31)

  • 革命の日々! C++ 用語やばい。超やばい。penisを意味するぐらいやばい

    いつものようにLKMLで駄文を書き散らかしていると、Hugh Dickins 先生からプライベートで忠告メールが KOSAKI のメールにはしょっちゅう hoge->fuga member だどうした。とか出てくるけど、"member"ってEnglishでは"penis"の婉曲表現だぜ。分かって使ってる? な、なんですとーー!! ・・・たぶん、ほとんどの日人は知らないと思います(;_; 追記: あとで気づいたが、このときは、メモリ回収処理を途中で打ち切る議論をしていたので、メールには sc->may_cut_off member と書いてあった。つまり「ちん○切り落とすぞ」機能を議論していたことになる。 うーん、それは震えが来るかもしれん。

    ykot
    ykot 2014/11/22
    し、知らんかったよ…
  • モダン C++ プログラミング - 日本語公開記事 - Confluence

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

  • libdcompile

    あ\n こんにちは、fadisです。★最近話題の某A社で働いています。★きな言語はC++、好きなエディタはVim、好きなディストリはGentooですが、昨日東京の方でやっていた闇鍋プログラミング勉強会によると、★この3つはTLから変態を検出するキーワードとして使えるらしいです。ちょっと、こんなに健全な人が変態に分類されるとか誤認識にも程があると思うのですが、\n こんにちは、fadisです。★最近話題の某A社で働いています。★きな言語はC++、好きなエディタはVim、好きなディストリはGentooですが、昨日東京の方でやっていた闇鍋プログラミング勉強会によると、★この3つはTLから変態を検出するキーワードとして使えるらしいです。ちょっと、こんなに健全な人が変態に分類されるとか誤認識にも程があると思うのですが、\n こんにちは、fadisです。★最近話題の某A社で働いています。★きな言語はC

  • quick sortよりも高速でmerge sortのように安定しているソートアルゴリズムtim sort [勘違い] - Islands in the byte stream

    <追記>ベンチマークプログラムに誤りがありました。ソート済のシーケンスに対してソートを掛けていました。ご指摘ありがとうございます>ak氏 そんな夢のようなソートアルゴリズムがあるのかというと、あるらしいんです。それがtim sortと呼ばれるアルゴリズムです。 画期的(?)なソートアルゴリズム「Sleep Sort」:濃縮還元オレンジニュース|gihyo.jp … 技術評論社 このあたりで拾ってきたネタですね。 merge sortを改良したアルゴリズムで、安定*1しており、しかも実行速度にも優れているとか。アルゴリズムの性能の評価は済んでいるらしく、CPythonやJDK7には既に導入済みのようですね。 ならば当然Perlのソートも…と考えるわけですが、まず評価のためにJavaのソースをC++にそのまま移植してみました。それがこれ(いちおうテスト済): https://github.co

    quick sortよりも高速でmerge sortのように安定しているソートアルゴリズムtim sort [勘違い] - Islands in the byte stream
  • PythonコードをC++に変換して高速化をはかる·Shed Skin MOONGIFT

    Shed SkinはPythonのコードをC++に変換するコンパイラ。 Shed SkinはPython製のオープンソース・ソフトウェア。プログラミング言語というのは世の中にたくさん存在する。コンパイルする言語もあれば、スクリプトとして実行されるものもある。どれが好きかはプログラマー次第だが、仕様によって言語の選定がしぼられることも多い。 変換処理 そうした言語間の垣根を越える技術もたくさん登場している。言わばランタイムを実装する系統のやり方だが、もう一つ別な言語に置き換えてしまうものもある。その一つ、PythonC++にしてしまうShed Skinを紹介しよう。 Shed Skinはまだまだ開発中であり実用レベルという訳ではない。だが幾つかのプログラムでは実際に変換ができるようになっている。Pythonでは変数は特定の型を宣言しないため、Shed Skinでは型推論を用いている。また、

    PythonコードをC++に変換して高速化をはかる·Shed Skin MOONGIFT
  • 米Intel、並列プログラミングのためのC/C++言語拡張「Cilk Plus」をオープンソース化。GCCへの実装も開始 | OSDN Magazine

    米Intelが並列プログラムを容易にする言語拡張「Intel Cilk Plus」をオープンソース化し、またGCCへの実装が「cilkplus」ブランチで開始されたと発表した。x86_32およびx86_64アーキテクチャでテスト済みというLinux向けランタイムのソースコードも公開されている。 Cilk PlusはIntelが2010年に発表したC/C++向けの言語拡張。1990年代にマサチューセッツ工科大学で開発されたC言語拡張「Cilk」がベースで、プログラムの並列化を容易に実装できるキーワードや関数群が含まれる。Intelは2009年にCilk技術ベンダーのCilk Artsを買収し、Cilkの権利や技術を手に入れている。Cilk PlusはすでにIntelがリリースする「Intel Compiler」に搭載されているが、GCCなどほかのC/C++コンパイラではサポートされていなかっ

    米Intel、並列プログラミングのためのC/C++言語拡張「Cilk Plus」をオープンソース化。GCCへの実装も開始 | OSDN Magazine
  • STL風に使えるマップ型コンテナの紹介と性能比較 - Preferred Networks Research & Development

    最近スマートフォンに乗り換えました。徳永です。 C++は世に数あるプログラミング言語の中では比較的メモリをわない方ですが、それでもメモリ使用量が問題となる場合はあります。そのような場合の対処方法はいくつか有りますが、手軽に選択できる方法として、今日はSTLのmapやunordered_mapと同じ感じで使えるデータ構造をいくつか紹介したい思います。 以下、計算量の表記をする際には、要素数をnとします。 Loki::AssocVector LokiはModern C++ Designというの作者であるAndrei Alexandrescuが開発したライブラリです。AssocVectorはその中の一つとして提供されているクラスで、vector<pair<key, value> >という型のベクターをkeyでソートした状態で持つ事により、二分探索による要素の探索を可能にしたデータ構造です。こ

    ykot
    ykot 2011/07/21
  • C++の文法が複雑過ぎると話題に(俺の中で) | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

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

    ykot
    ykot 2011/06/16
  • 雑貨's tumblr - C++創造者Bjarne Stroustrupへのインタヴュー

    C++創造者Bjarne Stroustrupへのインタヴュー source: An Interview with C++ Creator Bjarne Stroustrup - CodeGuru C++0x標準化作業がまもなく最終投票段階になるいま、C++の創造者たるBjarne Stroustrup博士とサシでC++0xの新しい機能と将来について語る機会を得た。 DK: Danny Kalev BS: Bjarne Stroustrup Table of Contents 1 Page1  2 Page2  3 Page3  1 Page1 DK C++0xの標準化作業はどのあたりまできていますか?いつぐらいに国際標準となる見込みでしょうか? BS 最終投票は2011/3/26を予定しておる。見たところ不安要素はないな。その後、正式な国際投票や、ISOのお役所仕事で遅れるにせよ、

  • C++プログラマであるかを見分ける10の質問 - Cube Lilac

    「優れたPerlプログラマを見分ける27の質問」の日語訳 - Islands in the byte stream, Javaプログラマであるかを見分ける10の質問 - やさしいデスマーチ を見ながら C++ だとこれくらいかなぁと取りあえず作ってみました.前半は単純な機能の説明,後半は実際にどのように使って(使い分けて)いくかについての質問になっています.選択基準としては,特に後半部分は,自分が観測できている C++ 界隈で論争になったトピックを中心に取り上げています. iterator の役割について説明せよ. *_cast およびCスタイルのキャストそれぞれについて概要を説明せよ. overload と override と hiding の違いについて説明せよ. const の機能について概要を説明せよ. 多重継承について概要を説明せよ. ポインタの使用方法について,メモリーリー

    C++プログラマであるかを見分ける10の質問 - Cube Lilac
    ykot
    ykot 2011/03/08
  • C++ Reference Project

    C Library The elements of the C language library are also included as a subset of the C++ Standard library. These cover many aspects, from general utility functions and macros to input/output functions and dynamic memory management functions: <cassert> (assert.h)C Diagnostics Library (header)<cctype> (ctype.h)Character handling functions (header)<cerrno> (errno.h)C Errors (header)<cfenv> (fenv.h)F

  • CppCMS — High Performance C++ Web Framework

    What is CppCMS? CppCMS is a Free High Performance Web Development Framework (not a CMS) aimed at Rapid Web Application Development. It differs from most other web development frameworks like: Python Django, Java Servlets in the following ways: It is designed and tuned to handle extremely high loads. It uses modern C++ as the primary development language in order to achieve the first goal. It is de

  • ソフトウェア工学とは何か

    ソフトウェア設計とは何か? (原文: What Is Software Design?) by Jack W. Reeves (c)C++ Journal - 1992 訳者まえがき この文書は,Jack W. Reeves 氏が1992年に C++ Journal に寄稿した記事の邦訳です。 記事では,オブジェクト指向プログラミング言語の代表として C++ を挙げていますが,これは記事が執筆された当時,一般的に利用可能なオブジェクト指向言語は C++ だけであったという事情があるためです。 今では C++ に加えて Java,Delphi,C# といったオブジェクト指向言語が利用可能となっていますが,そんな今でさえこの記事は古さを感じないものとなっており,ソフトウェア開発の質,現状を鋭くえぐるものとなっています。 邦訳の公開を許諾していただいた Jack W. Reeves 氏に,

  • C++のリファレンスサイトを作りました - Faith and Brave - C++で遊ぼう

    cpprefjp - C++語リファレンス まだサイトを用意しただけで、中身はまだまだです。 C++ Referenceが便利だったので、それの日語版 + C++0x対応したサイトがほしい、というのが動機です。 boostjp Google Groupのメンバであれば編集できるようにしてありますので、サイトの充実のためにみなさんご協力お願いします。 cpprefjpのためのGoogle Groupも用意しようかと考えましたが、boostjpとメンバが大幅にかぶりそうなので、boostjp一に絞ります。 cpprefjpでのご相談は、boostjpの方に投稿していただければと思います。

    C++のリファレンスサイトを作りました - Faith and Brave - C++で遊ぼう
    ykot
    ykot 2011/01/18
  • 久々に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

    ykot
    ykot 2011/01/14
    "__から始まるトークンはシステム用に予約されています"  / こちらも参考に http://goo.gl/A8vi5
  • C++0x 標準ライブラリ完全解説 まとめ - 野良C++erの雑記帳

    No.00 Introduction (2011-01-07 更新) No.01 namespace rel_ops, utility (2011-01-07 更新) No.02 std::move, utiliy (2011-01-16 更新) No.03 std::move_if_noexcept, utiliy (2011-01-17 更新) No.04 std::swap, utiliy (次回予定)

    C++0x 標準ライブラリ完全解説 まとめ - 野良C++erの雑記帳
  • ポインタは用法用量を守って正しくお使いください - kikairoya’s diary

  • wat-array : wavelet木を利用した高速配列処理ライブラリ - Preferred Networks Research & Development

    こんにちは岡野原です。もう年末になりましたが、私の今年はこれからです。 wat-arrayというC++ライブラリを公開しました。 google code:wat-array wat-arrayはフリーソフトウェアであり、修正BSDライセンスに基づいて利用できます. wat-arrayはwavelet木と呼ばれるデータ構造を利用することにより、配列上の様々な処理を効率的に行うことができるC++ライブラリです。 例えば、 – 任意の連続した範囲内にある最大値 /最小値 / k番目に大きい値, またそれらの出現位置、頻度 – 任意の連続した範囲内にある指定した文字cの出現回数、c未満/より大きい文字の出現回数 – 任意の文字のi番目の出現位置 といったものを求めることが全て範囲長、入力長に対して定数時間で行うことができます。 例えば長さ10億、値の範囲が0から1000万であるような配列A中のA[

    wat-array : wavelet木を利用した高速配列処理ライブラリ - Preferred Networks Research & Development
    ykot
    ykot 2010/12/17
    へー、面白そうだね。後で、じっくり読もう。
  • Chromium

  • アセンブラコードで見るC++ Composer XEの強力な最適化機能 | OSDN Magazine

    インテル C++ Composer XEには、強力な最適化機能を備えるコンパイラが含まれている。インテルCPUが備えるSSEやAVXといった機能を効率的に利用するコードや、マルチコアによる並列処理を行うコードを自動的に生成できるのが特徴だ。記事ではインテル C++ Composer XEが持つさまざまな最適化機能を紹介するとともに、コンパイラが出力するアセンブラコードをチェックしてその効果を探っていく。 無視できないコンパイラの最適化機能、アプリケーションによっては数十パーセントものパフォーマンス向上も 近年のCPUの進化に伴い、コンパイラの最適化機能が注目されるようになってきた。パイプライン化やキャッシュの大容量化、分岐予測や投機的な実行といった機能の採用など、CPUの内部アーキテクチャは進化を続けている。そのため、コンパイラにはCPUのリソースを効率良く利用できるバイナリコードを生成

    ykot
    ykot 2010/12/08