タグ

C++に関するairj12のブックマーク (13)

  • C++でできる!OS自作入門

    3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)Kuniyasu Suzaki

    C++でできる!OS自作入門
  • モダン C++ プログラミング - 日本語公開記事 - Confluence

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

  • 本当に怖いC++erとC++という糞言語 - 神様なんて信じない僕らのために

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

    本当に怖いC++erとC++という糞言語 - 神様なんて信じない僕らのために
    airj12
    airj12 2013/12/27
    「C++使って無くてもちゃんと勉強しろ。」はい。
  • Windows 8のC++でプログラミングの常識がひっくり返った

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

    Windows 8のC++でプログラミングの常識がひっくり返った
    airj12
    airj12 2013/04/04
    (゚Д゚)オイ・・・
  • エデンの園でおきたこと - steps to phantasien

    有給を駆使し一足早くクリスマス休暇に突入、ヒャッホイ Ingress やるぜーと 意気込んでいた矢先ノロウイルスにやられダウンした。かなしい。鎮まれ俺の胃袋・・・ そんな腹痛日和の気晴らしとして今日は Garbage Collection Advent Calendar に参加してみることにしました。 Advent Calendar 初体験につきよくわかってないけど勝手に参加していいんですよね? GC というとジェネレーショナルだのパラレルコンカレントだのといった話が目立ちがちだけれど、 現実の問題というかブラウザを相手にするとそれ以外の細々とした面倒が目につく。 GC つき言語 (JavaScript) のコードと C++ で書かれたコードとの連携は最たる面倒の1つ。 たとえば WebKit の DOM は C++ で実装されており、 C++ のオブジェクトは JavaScript 処理

  • モダンC++対マネージコード:パフォーマンス対生産性

    Rustが再評価される:エコシステムの現状と落とし穴 In this article, we share findings and insights about the Rust community and ecosystem and elaborate on the peculiarities and pitfalls of starting new projects with Rust or migrating to Rust from othe...

    モダンC++対マネージコード:パフォーマンス対生産性
    airj12
    airj12 2012/04/25
    boostとか目一杯使うとC#と大差なくなる気がしてるけど
  • 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
  • JPCERT C Secure Coding Standard 日本語版 - プリプロセッサ (PRE) (#c01)

    CERT C コーディングスタンダード 00. はじめに 01. プリプロセッサ (PRE) 02. 宣言と初期化 (DCL) 03. 式 (EXP) 04. 整数 (INT) 05. 浮動小数点 (FLP) 06. 配列 (ARR) 07. 文字と文字列 (STR) 08. メモリ管理 (MEM) 09. 入出力 (FIO) 10. 環境 (ENV) 11. シグナル (SIG) 12. エラー処理 (ERR) 13. Application Programming Interface (API) 14. 並行性 (CON) 49. 雑則 (MSC) 50. POSIX (POS) AA. 参考情報 BB. Definitions CC. 未定義の動作 DD. 未規定の動作 XX. お問い合わせ 00はじめに このページでは、JPCERTコーディネーションセンターが翻訳を行っている CE

    JPCERT C Secure Coding Standard 日本語版 - プリプロセッサ (PRE) (#c01)
  • C++0xペロペロ@VS2010その1

    C++0xで追加された仕様がVisualStudio2010でどの程度使えるのか試してみた。 なお、C++0xの言語拡張についていはこのページを参考にしました。 Faith and Brave - C++で遊ぼう C++0xの言語拡張まとめ(※随時更新) http://d.hatena.ne.jp/faith_and_brave/20071022/1193052163 Angel bracket (連続山カッコ) 参考リンク >> が operator >> と認識されなくなる //================================================== // Angel bracket (連続山カッコ) //================================================== void AngelBracket() { std:

    airj12
    airj12 2011/07/15
    極悪度が増している
  • TFS 2015 build drop folder explorer link not opening - MSDN Blogs

    In Visual Studio 2022 17.10 Preview 2, we’ve introduced some UX updates and usability improvements to the Connection Manager. With these updates we provide a more seamless experience when connecting to remote systems and/or debugging failed connections. Please install the latest Preview to try it out. Read on to learn what the Connection ...

    TFS 2015 build drop folder explorer link not opening - MSDN Blogs
  • シンクリッジ - VisualStudio2005、2008、2010 のコンテナの速度比較

    コーディング小手先テクニックとは多少毛色が違うかもですが、なんとなく VisualStudio2008(VC9) の吐き出すコードが、どうにも遅いような気がしたので試してみました。 ちょっと面白い結果だったので、記載してみます。 std::vector (と、ついでに std::list ) を、上からなめるコードで試してみました。 VisualStudio2005sp1 2008sp1 2010 の3種類で比較です。 各コンパイラの条件はすべて同じハズで、 ・最適化オプションは 実行速度優先(/O2) インライン関数の展開(/Ob2) 組み込み関数を使用する(/Oi) ・_SECURE_SCL はデフォルト(有効)です。 ・ヘタに最適化されないように、処理はDLLに逃がしてあります。 ・boost は 1.42 を使わせて頂いてます。( bind と functio

    airj12
    airj12 2011/06/13
    VS2008ェ…
  • Archived MSDN and TechNet Blogs | Microsoft Docs

    Archived MSDN and TechNet Blogs 2/7/2020 2 minutes to read MSDN and TechNet blog sites have been retired, and blog content has been migrated and archived here. Archived blogs are grouped alphabetically by the initial letter of the blog name. Blogs and blog posts can be searched by their names, using the Search box at the top of the page. Actively updated blogs have been moved to other blog sites,

    airj12
    airj12 2011/05/19
    右辺値参照対応で随分速くなってるっぽい。
  • Interop (C++) のパフォーマンスに関する考慮事項

    このトピックでは、マネージまたはアンマネージ相互運用機能の遷移による実行時パフォーマンスへの影響を小さくするためのガイドラインを示します。 Visual C++ は、Visual Basic や C# (P/Invoke) など、他の .NET 言語がサポートしているのと同じ相互運用機構をサポートしていることに加え、Visual C++ 固有の相互運用機能 (C++ Interop) もサポートしています。 パフォーマンスを重要視するアプリケーションでは、各相互運用手法におけるパフォーマンスへの影響を理解することが重要です。 使用する相互運用手法に関係なく、マネージ関数からアンマネージ関数、またはアンマネージ関数からマネージ関数を呼び出すたびに、サンクと呼ばれる特別な遷移シーケンスが必要となります。 Visual C++ コンパイラは、これらのサンクを自動的に挿入します。ただし、これらの遷

    Interop (C++) のパフォーマンスに関する考慮事項
  • 1