タグ

C++に関するminekのブックマーク (32)

  • Bjarne Stroustrupのプログラミング入門書の査読の感想

    C++の設計者ストラウストラップによるプログラミング入門書の最新版日語訳が、9月に @asciidwango から出版されます。 https://t.co/ssT9ubfXtT — アスキードワンゴ編集部 (@asciidwango) August 5, 2016 アスキードワンゴ編集部からBjarne StroustrupのProgramming -- Principles and Practice Using C++というの第二版の邦訳が出版される。初版は翔泳社が出していたが、C++14に対応した改訂版の第二版の版権が空いていたので、アスキードワンゴから出すための作業をしていた。私は邦訳の査読をした。 今年になってから半年は、ずっとこのの査読をしていた。このためにC++標準化委員会の最新の文書を把握する作業が数ヶ月ほど滞った。そして、この仕事は、私がドワンゴに入社して以来、最悪の

    Bjarne Stroustrupのプログラミング入門書の査読の感想
    minek
    minek 2016/08/06
    門を閉ざすことで、もういまさらC++になんか入門するなというストラウストラップからのメッセージだったんだよ!
  • C++のコンパイルとリンクがあまりに遅いのでカッとなって原因と対策を調べてみた - Qiita

    はじめに 美しく素晴らしいプログラミング言語が数多く存在する中、未だC++を使ってる業界は少なくなく、おそらく多くの人がそのコンパイル&リンクの遅さにイライラしていると思います。 ただでさえ遅いのに、C++様は僕達をあざ笑うかのように、リリースに近づけば近づくほどソースコード量の増大によってコンパイル&リンク時間も増えていきます。 プロジェクト末期は、溢れかえったタスクをどうにか消化するために少しでもコーディングに時間を割く必要があるのに・・・くそっorz というわけでここではそんな不幸なプログラマを減らすためにも、僕の知る限りのコンパイル&リンク時間を減らす方法を書いてみようかと思います。 まぁ高性能PCや、インクレディビルドの購入が可能であればこんな苦労をしなくても済むかも知れませんが。。。 そもそも、コンパイル&リンクが遅くなると何がイケないの? 単純に実装→確認に時間がかかると、実

    C++のコンパイルとリンクがあまりに遅いのでカッとなって原因と対策を調べてみた - Qiita
    minek
    minek 2016/03/08
    incredibuildをフルパワーで使ってもなお1時間近くかかる。。。templateを華麗に駆使してstaticおじさんを嘲笑するタイプの若人に死を。。。
  • ふと思いついて書いた。後悔はしていない。 - yamasaのネタ帳

    昨日、マルチスレッドなプログラムのコードを読んでたんです。マルチスレッド。 そしたらなんかロックがめちゃくちゃ競合しててパフォーマンスが出ないんです。 で、変更履歴よく見たらなんか全メソッドを一つのmutexでロックして、マルチスレッドに対応した、とか書いてあるんです。 もうね、アホかと。馬鹿かと。 お前らな、単一mutexで囲うだけの対応如きでマルチスレッド対応とか言ってんじゃねーよ、ボケが。 単一mutexだよ、単一mutex。 なんかthreadを作りまくってる箇所もあるし。多重ループの内側でthread生成か。おめでてーな。 よーしデータを細分化してガンガン別スレッドで処理しちゃうぞー、とかやってるの。もう見てらんない。 お前らな、Fork/Joinフレームワークのスレッドプール実装やるからそれ使えと。 マルチスレッドってのはな、もっと殺伐としてるべきなんだよ。 Work-stea

    ふと思いついて書いた。後悔はしていない。 - yamasaのネタ帳
  • 本当に怖いC++erとC++という糞言語 - 神様なんて信じない僕らのために

    かつて、ゲームプログラミングはアセンブリが主流で、8bitCPUは掛け算や割り算すらないものでした。割り算がないCPUっていつの時代だよ、っていう人たちもおりますが、ゲームボーイアドバンスに搭載されているARM7TDMIは除算の命令を持っていません。(故に除算を書くと死ぬほど遅いので、乗算で代用したりする) また、浮動小数に対する演算ユニットを持っていないハードウェアもあります。ニンテンドーDSに搭載されているARM946E-Sですら、浮動小数演算ユニットはありません。(CPUの機能としてはオプションで存在する)そのために固定小数点といった技術もあるわけですが、古くさい話です。 これらはCとC++の機能を駆使していかにパフォーマンスを出すかを余儀なくされた時代です。 さておき、最近はスマートフォンでのゲーム開発も進化しており、C++iPhoneAndroidの両方で動くということもあ

    本当に怖いC++erとC++という糞言語 - 神様なんて信じない僕らのために
    minek
    minek 2013/12/25
  • プログラマーになるには - カレーなる辛口Javaな加齢日記

    http://d.hatena.ne.jp/moto_maka/20101128/1290886142 http://d.hatena.ne.jp/JavaBlack/20101124/p1 「こんな高価で難しそうなを読まないといけないの・・・?」 高価だとはぜんぜん思わないけど*1,答はYESです. 私はまずはC++を道具としてゲームを作ってみることが第一だと思います。 C++はCを含んでいますから、文法要素が多すぎて大変なら最初はCの範囲だけでもかまいません。 まあこれはいいかも.でもそうなるとEffectiveC++とかGoFくらいは最低限必要だよね. C++実践プログラミング 作者: スティーブオウアルライン,Steve Oualline,望月康司,クイープ出版社/メーカー: オライリージャパン発売日: 2003/09/01メディア: 単行購入: 6人 クリック: 70回この商

    プログラマーになるには - カレーなる辛口Javaな加齢日記
    minek
    minek 2013/10/23
    半分くらいしか読んでない…これでは闇の軍団員としてやっていけない…
  • Windows 8のC++でプログラミングの常識がひっくり返った

    「C言語とC++がわかる」というムック(2013年4月2日発売)の作業で、Windows 8/RTで動く「Windowsストア アプリ」をC++で作った。元記事はVisual BasicとC#(シーシャープ)で作っていたので、それをC++で書き直すというわけだ。 これが想像をはるかに超えて難しく、土日に働き続けるのはもちろんのこと、1日の睡眠時間を2時間に削ったりして長時間取り組んでも、思うように進まなかった。印刷会社にデータを渡す日は近付くしプログラムは動かないしで、10年に1度クラスの大ピンチ。冷や汗をかき、涙目になりながら書き続けて何とか間に合わせたのだが、どこが最大の難所だったかというと、「順次処理を書いたつもりなのに順次処理してくれない」という、常識破りの大変化があったことだと思う。 手続き型のプログラミング言語でプログラムを書く場合、プログラマが と記述したら、コンピュータは

    Windows 8のC++でプログラミングの常識がひっくり返った
    minek
    minek 2013/04/04
     「常識」という言葉の危険性を改めて認識する事件。
  • C++ - アンサイクロペディア

    概要[編集] 関わる者全てを、混沌と困惑と混迷の螺旋へと落とし込み、その長大な術式は術者の精神力をマッハで削る。初学者向けに蛇足ながら具体例を示すと、僅か5センチにも満たない術式に対し、警告が2メートルにも及ぶことなどはザラである。かの大殺界における盟主、また、Linuxという原理主義組織における師を自認するLinus Torvaldsをして、C++は複雑すぎると言わしめたほどの高等言語なのである。それを踏まえ、近代における再評価を加味するとつまり、複雑すぎて使えないという、仇花とも言うべき質が明らかになりつつある論調を無視することは出来ない。 しかしながら、C++の特性、独特の長所があるというのも一面の事実ではある。それは、術者が高度に言語を理解している限りにおいては、高度に最適化された術式を出力できる点にある。X箱等と呼称され親しまれている民生用の呪術再生装置においては、術式再生にお

    minek
    minek 2013/03/27
    髪よ、わたしも最強魔術師になりたいです。
  • C++ 開発者が陥りやすい OpenMP* の 32 の罠 | iSUS

    この記事は、インテル® ソフトウェア・ネットワークに掲載されている「32 OpenMP traps for C++ developers」 (http://software.intel.com/en-us/articles/32-openmp-traps-for-c-developers/) の日語参考訳です。 はじめに マルチコアシステムが急速な広がりをみせており、並列プログラミングへの早急な対応が求められています。しかしながら、経験豊富な多くの開発者にとってもこれは新しい分野です。既存のコンパイラーとコード・アナライザーでも、並列コードの開発中に一部の問題を発見することはできますが、多くの問題は検出できません。この記事では、OpenMP* を使用する並列プログラムが正しく動作しない原因となるさまざまな問題について説明します。 概要 並列プログラミングが登場したのはかなり以前のことです

    C++ 開発者が陥りやすい OpenMP* の 32 の罠 | iSUS
  • ポインタは用法用量を守って正しくお使いください - kikairoya’s diary

  • C++の便利ツール・ライブラリ - DO++

    フルタイムで働きはじめて4ヶ月。 いろんなことがありました。 今日はインターンが来ているということもあり日頃のC++コーディングライフの中で大変重用しているツールを紹介します。といってもどれも有名なツールでググれば解説がでてくるとは思いますので、一言ずつだけ紹介してみます。みなさんも何かよさげなライブラリ・ツールがありましたら教えてください。 - valgrind/callgrind/cachegrind プログラムの実行結果を解析するツール群。まぁ、王道であえて紹介する必要はないかもしいませんが.。valgrindはプログラムのどこかでメモリが漏れているかどうかのチェックに使います.コードのどの部分で確保した領域がどこで漏れているかまで追跡することができます valgrind --leak-check=full command プログラムのどのが計算量的にボトルネックになっているかを調べ

    C++の便利ツール・ライブラリ - DO++
  • C++の話(本当にあった怖い話)

    The document discusses C++ and its history and features. It describes C++ as an extension of C with object-oriented features like classes. It provides information on the creator of C++, Bjarne Stroustrup, and the evolution of C++ since its introduction as a way to add object-oriented programming to C. It also includes sample C++ code demonstrating the use of arrays and includes from the Boost libr

    C++の話(本当にあった怖い話)
    minek
    minek 2010/07/15
     恐ろしすぎる
  • スクリプト言語の息の根を止めるのは案外 SSD かもな - kwatchの日記

    大変たいへん興味深い記事。全プログラマーにとって。 HDDの代わりにSSDを利用したら、リレーショナルデータベースの性能はどれだけ向上するのでしょうか? オラクルと富士通が共同検証を行い、その結果をホワイトペーパーとして先週発表しました ...(snip)... HDDは200スレッドで性能が頭打ちなのに対し、SSDは200スレッドから300スレッドになってもまだ性能は上昇。ただし、300スレッド時にはCPU利用率が100%に近づいており、先にCPU性能の方がボトルネックとなってしまったようです。 HDDをSSDにしたらデータベースはどれだけ速くなるか? オラクルと富士通が実験 - Publickey 動的なスクリプト言語 (RubyPython など) と静的なコンパイル型言語 (C++Java など) では、だいたい 5 倍から 10 倍ぐらいの速度差がある。それでもスクリ

    スクリプト言語の息の根を止めるのは案外 SSD かもな - kwatchの日記
  • C++ における const の重要性と活用 - ニートの世紀

    const なんて知らないよ、という層の人間が一定世の中には存在するようです。 そういった人間の大多数の主張は恐らく「面倒くさい」「嫌い」とかだと思うのですが、const 性に気を配るのは C++ においてはメンバ変数を private にしないといけないことと同程度にやらないといけないことです。という話をします。 const というとまず真っ先に出てくるのは「値が変わらないことでコードが読みやすくなる」とか「参照透明性のため」とかで、参照透明とか言葉がすごく綺麗ですごいって感じだと思います。ボクは参照透明という言葉がすごく好きです。 でも C++ は現実の言語なので現実を見ましょう。そんなのどうだっていいんです。 前提として C++ はそれなりに速い何かを作るための言語である、ソースコードはコメントや何らかの形のドキュメントに勝る、という二点をあげておきます。 例えば巨大なオブジェク

  • 「俺のソースだから」というプログラマは死んだらいいのに - 神様なんて信じない僕らのために

    最近こんなやりとりがあった。 「Cって標準のコンテナ(双方向リストや可変長配列など)がなくて不便。 Cのプロジェクトってコンテナ自体ないこともあるし、コンテナがないとプログラムって書きにくいよね。 その点C++はSTLが(ry」 ... 「コンテナ? STL“も”いいけど、自分で書きたい」 正直、自分は「え? 何を言っているんだ?」と思った。 STL“も”いいけど、“自分で書きたい”だって? その人はプログラマとしては十年選手だが、C++に関して、特にテンプレートに関しては稚児に等しいレベル。 で、どうして「自分で書きたい」ということになるんだろう? それを使わされる人の苦労はどうなる? それともプロジェクトに同一の事をするための複数のコンテナが存在するのか? 俺俺コンテナを書きたい理由はなんだ? 要するにここにおいて「自分で書きたい」はSTLがよく解らないので、 機能や動きを隅々まで把握

    「俺のソースだから」というプログラマは死んだらいいのに - 神様なんて信じない僕らのために
  • MSDN ホームページ

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    MSDN ホームページ
  • Google C++スタイルガイド 日本語訳

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

  • 超スマート・ポインタ C++ 版 - 自作ライブラリ - C 言語, C++ - namespace kilrey;

    2020-09-01潢政办〔2020〕23号 开火车大满贯的水果机办公室 关于印发潢... 2020-09-01潢政办〔2020〕22号 开火车大满贯的水果机办公室关于印发潢... 2020-09-01潢政办〔2020〕21号 开火车大满贯的水果机办公室关于印发潢... 2020-09-01潢政办〔2020〕20号 开火车大满贯的水果机办公室关于印发潢... 2020-09-01潢政办〔2020〕19号 开火车大满贯的水果机办公室关于印发潢... 2020-09-01潢政办〔2020〕18号 开火车大满贯的水果机办公室关于加强公... 2020-07-162020年开火车大满贯的水果机资金分配情况公告公示(第三次) 2020-06-122020年开火车大满贯的水果机资金分配情况公告公示(第二次) 2020-04-072020年开火车大满贯的水果机资金分配情况公告公示(第一次) 2020-0

    minek
    minek 2008/11/07
  • C++/メンバ関数のポインタ - assari

  • C++ > クラスの継承と仮想関数

    ■仮想関数とは何か MSDN Libraryによると、仮想関数とは「仮想関数は、派生クラスで再定義するメンバ関数です。基クラスへの参照またはポインタを使って派生クラス オブジェクトを参照すると、そのオブジェクトの仮想関数が呼び出され、派生クラスにあるその関数が実行されます。」と説明されています。これは以下のような振る舞いを表しています。 main.cpp #include <iostream.h> class CBase { public: CBase(){} virtual ~CBase(){} void PrintString() { cout<<"PrintString of CBase is called"<<endl; } virtual void PrintStringVirtual() { cout<<"PrintStringVirtual o

  • C++言語 パフォーマンス - redstrange Wiki*

    何か気付いた点があれば、追記をよろしくお願いします。 参考 http://www.open-std.org/JTC1/SC22/WG21/ http://www.open-std.org/JTC1/SC22/WG21/docs/TR18015.pdf http://www.s34.co.jp/cpptechdoc/article/sizeof/index.html 参照 - reference 自前のクラスなどの場合、参照を使う方が早い 組み込みの型の場合、参照を使わない方が早い 名前空間 - namespace 名前空間が、パフォーマンスには影響を与えることはない。 メモリ的にも実行速度的にも。 ただし 関数などの識別子を短くすることの妨げになることがある メモリ上の配置が変わる可能性もある キャスト - cast C表記、C++表記いずれにしても一時的なオブジェクトが作られる可能性があ

    C++言語 パフォーマンス - redstrange Wiki*