タグ

c++に関するudzuraのブックマーク (29)

  • C++の未定義の挙動で呼ばれないはずの関数が呼ばれる場合

    Krister Walfridsson’s blog: Why undefined behavior may call a never-called function 以下のようなコードをClangでコンパイルすると、 #include <cstdlib> typedef int (*Function)(); static Function Do; static int EraseAll() { return system("rm -rf /"); } void NeverCalled() { Do = EraseAll; } int main() { return Do(); } Clangは以下のような最適化されたコードを吐く。 main: movl $.L.str, %edi jmp system .L.str: .asciz "rm -rf /" これは以下のようなコードと同じだ。

    udzura
    udzura 2017/09/26
    未定義動作怖すぎる…
  • Rust は何が新しくないのか - ろじかるんるんものがたり

    disclaimer 追記で注意書き足すのはどうなんでしょうね。ということで追記です。 別にギョムでガンガン書いてるとかではないです。 ノミコンの方も含めてドキュメント全部読んだ、API 一通り眺めた、型推論というかリージョン推論部分の概要眺めた、関連する論文読んだ、言語触った、程度の人間が書いてます。 正しくない、不正確な部分もあると思います。 雑です、すいません。 TL;DR 的には、C++ 置き換えるための言語として作られたので当然 C++ にあった概念引き継いでますよみたいな話です。 以下追記前の元の全文。 以下の記事が結構人気と聞きました。 Rustは何が新しいのか(基的な言語機能の紹介) - いもす研 (imos laboratory) ここでは、記事中の「新しくない」部分を historical な話を交えて説明する形で何か書きたいと思います。 記事を否定するようなものでは

    Rust は何が新しくないのか - ろじかるんるんものがたり
  • 普通のコンピューターからAMラジオを鳴らそう

    読者の持っている至って普通のコンピューターは、実はAMラジオを鳴らす発信装置が備わっている。 ラジオを鳴らすコードは以下にある。 https://github.com/fulldecent/system-bus-radio ただしこれはMac OS Xでしか動かないので、C++11に移植したコードが以下になる。また、このコードはスレッドを回して消費電力を上げることにより、オリジナルより出力も上げてある。 https://github.com/EzoeRyou/system-bus-radio 動かし方(GCCの場合) git clone git@github.com:EzoeRyou/system-bus-radio.git cd system-bus-radio make gmain make grun Clangの場合、以下のようにする。 make cmain make crun そし

  • 剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術

    2014/9/2 CEDEC2014にて講演させて頂いた 「剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術」 で使用した資料です。 Read less

    剣と魔法のログレス いにしえの女神 〜スマホ時代の MMORPG を支える技術
  • C++でApache Moduleを書きたい人へのTutorial - Y's note

    C++ Apache Module Tutorial あどさーばー作っています@yutakikuchi_です。 広告配信等の処理高速化の実現手段としてCを使ってApache/NginxのModuleレイヤーで処理を書く事があります。Apache/NginxのModuleはCを基としているんですが、char*の処理は面倒でstringにしたい、連想配列でデータを管理し易くしたい、その他C++にしか無いライブラリを使いたいといったC++への欲求が出てきてしまいます。ぐぐってもApache ModuleをC++で実現している人って結構少なく、おそらく一般的にはApache Moduleにそんな複雑な処理を書く要件や期待なんて無いんだろうなと想像はしていますが、このエントリーではC++で書いてみます(笑)。 Apache API C++ Cookbook Apache 2.x Modules I

    C++でApache Moduleを書きたい人へのTutorial - Y's note
  • 変化しなければならない

    この激動のような二週間を経て思ったことは、やはり、変化は必要なのだということだ。この数年、C++の参考書をだらだらと書くばかりで、まったく変化がなかった。怠惰はプログラマーの美徳だなどとうそぶきながら、何も変わっていなかったわけだ。 それが、引っ越しをしなければならなくなると急に決まった。引越しに伴い、今のコンピューターとインターネット接続も失うことになった。劇的な変化だ。 まず行ったのは、C++参考書のGitHubでの公開だ。とにかく、未完成だが公開しなければならない。このまま埋もれさせるわけには行かない。もちろん、GFDLのような自由を保証するコピーレフトなライセンスで公開するのだ。私が無きあとも、自由に使えるように意思表示しておかなければならない。 当初は、公開して、そのまま消えるつもりだったが、多くの誤字脱字の修正がpull requestで送られてきた。そのため、にわかにやる気を

    udzura
    udzura 2013/11/13
    ドラマだ、C++にはドラマがある
  • 歌舞伎座.tech#2 (2013/11/14 18:30〜)

    注意 現在X(旧Twitter)でのソーシャルログインができない事象を確認しています。事前にX(旧Twitter)側で再ログインした上でconnpassのソーシャルログインを行うか、 「ユーザー名(またはメールアドレス)」と「パスワード」の組み合わせでのログインをお試しください。合わせてFAQもご確認ください。 お知らせ 2024年9月1日よりconnpassサービスサイトへのスクレイピングを禁止とし、利用規約に禁止事項として明記します。 9月1日以降のconnpassの情報取得につきましては イベントサーチAPI の利用をご検討ください。 お知らせ connpassではさらなる価値のあるデータを提供するため、イベントサーチAPIの提供方法の見直しを決定しました。2024年5月23日(木)より 「企業・法人」「コミュニティ及び個人」向けの2プランを提供開始いたします。ご利用にあたっては利用

    歌舞伎座.tech#2 (2013/11/14 18:30〜)
    udzura
    udzura 2013/10/28
    おーっ
  • C++11: Syntax and Feature

    C++11の文法と機能(C++11: Syntax and Feature) Copyright (C) 2013 江添亮. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GN

    udzura
    udzura 2013/10/26
  • GLUTによる「手抜き」OpenGL入門

    資料: 今までにあった質問 リフレッシュレートの変更 AUX 版, Indy 版, 書籍版 床井研究室 (OpenGL 関連記事) 柴山 健伸 先生 (システム工学部情報通信システム学科) の混沌としたサンプル 陳 謙 先生 (システム工学部デザイン情報学科) の Motif を使ったサンプル 中山 礼児 氏 (経済学部 2000 年卒) の Delphi についての解説 The OpenGL WEB Site (OpenGL の総山) GLUT - The OpenGL Utility Toolkit (OpenGL.org の GLUT のページ) OpenGL Code & Tutorial Listings (OpenGL.org のチュートリアル集) OpenGL Technical FAQ (OpenGL について良く聞かれる質問) OpenGL FAQ 日語 (OpenG

  • MFC クラス ウィザード

    更新 : 2007 年 11 月 既存の MFC プロジェクト、または MFC をサポートする ATL プロジェクトにクラスを追加するには、このコード ウィザードを使用します。MFC クラスは、MFC サポートを持つ Win32 プロジェクトにも追加できます。プロジェクトの作成時に指定した機能によって、このダイアログ ボックスで使用できるオプションが決まります。 メモ : [名前] このページでは、新しいクラスのクラス名、基クラス、およびファイル名を指定します。 [クラス名] このページでは、新しいクラスの名前を指定し、ID 名とファイル名の既定値を入力します。通常、C++ クラスの先頭には "C" が付きます。たとえば、CMyClass は MyClass.h になります。 [基クラス] 新しいクラスの基クラス名を指定します。既定では、基クラスは CWnd です。選択した基クラ

    MFC クラス ウィザード
    udzura
    udzura 2013/09/20
    シー
  • ゲーム開発者のための C++11/C++14

    constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだGenya Murakami

    ゲーム開発者のための C++11/C++14
  • Getting Started on OS X

  • C++用のmrubyの関数バインダを作った

    mrubyに任意の型のC言語の関数を登録するためのバインダを作りました。 mrubybind - Binding library for mruby/C++ 使い方は簡単で、mrubybind.hをインクルードしてMrubyBindというクラスのインスタンスを生成する。そして、あるC言語の関数foobarがあったとき、 #include "mrubybind.h" void init(mrb_state* mrb) { mrubybind::MrubyBind b(mrb); b.bind("foobar", foobar); } とすれば、mrubyからその登録した名前で呼び出すことができる。mruby側から渡した引数が自動的にCの関数に渡り、その関数からの戻り値がmruby側に戻る。関数をバインドした後はMrubyBindのオブジェクトは捨ててしまってokです。 以下は実装の説明。 m

  • 教材としての yrmcds - 誰かの役に立てばいいブログ

    @ymmt2005 こと山泰宇です。 公式発表とは別に、こちらでは yrmcds のもう一つの使い方を紹介します。それと、私の気持ちなどを。 yrmcds は実際のところ、作ることをかなりためらいました。工数という観点でみれば Apache が Redis を扱えるようにするとか、レプリケーションの仕組みを頑張るといったほうが小さい気がしたからです。C++11 の実践課題という動機は個人に寄っているので、会社に十分なメリットがないことには・・・と。 そこで会社へのメリットとして、以下の価値を加えることにしました。 後進の開発者が設計やプログラミング技法を学ぶ教材として使える 英語圏では無名のサイボウズの知名度の足しになるようにオープンソース化して宣伝を頑張る 教材として yrmcds が提供しているものは以下です。 簡潔なコード 以下の cloc レポートが示すように、ほとんどのファイル

    教材としての yrmcds - 誰かの役に立てばいいブログ
    udzura
    udzura 2013/07/09
    "会社へのメリット"のくだりが良いですね…
  • C++ポケットリファレンス

    2013年5月18日紙版発売 2013年5月18日電子版発売 高橋晶,安藤敏彦,一戸優介,楠田真矢,道化師,湯朝剛介 著 四六判/528ページ 定価3,168円(体2,880円+税10%) ISBN 978-4-7741-5715-3 ただいま弊社在庫はございません。 →書の新版が発行されています。 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 ロングセラーシリーズ・ポケットリファレンスにC++が新登場。 「逆引き形式で目的からすぐ探せる」 「サンプルコードを見ながら具体的な実装のイメージがつかめる」 という特徴で,困ったときにすぐに役立ちます。 最新のC++11と現場のスタンダードであるC++03に対応。C++のエキスパートたちが執筆した,現場で役立つ1冊です。 こんな方におすすめ C++プログラマ C++11の特徴を手っ取り早く知って,使ってみたい方

    C++ポケットリファレンス
  • Mesos: A Cloud Scheduler (1) - steps to phantasien

    WIRED に ”Return of the Borg: How Twitter Rebuilt Google’s Secret Weapon” という記事があった。Twitter が Mesos というクラスタ管理のソフトウェアを開発しており、 それは検索会社のなんとかいうシステムみたいなもんらしいよ、という話。 不勉強につきそのなんとかいうシステムのことはよく知らないけれど、 去年の今頃開かれた Twitter の Open House (ASCII のレポート) をのぞかせてもらった際、 Twitter 社のエライ人 Rob Benson が 「これからインフラは Mesos でいく!!」 と熱心に話していたのを覚えている。 WIRED の記事によれば、Mesos ベースに移行したマシンは二割。もう全部移行する勢いなのかとおもってたけど、インフラを変えるのは大変なのだろう。 そういえ

    udzura
    udzura 2013/03/17
    コードの読み方
  • Amazon.co.jp: 新装版 マルチパラダイムデザイン: ジェームス・O・コプリン (著), James O. Coplien (著), 平鍋健児 (翻訳), 金沢典子 (翻訳), 羽生田栄一 (翻訳): 本

    Amazon.co.jp: 新装版 マルチパラダイムデザイン: ジェームス・O・コプリン (著), James O. Coplien (著), 平鍋健児 (翻訳), 金沢典子 (翻訳), 羽生田栄一 (翻訳): 本
    udzura
    udzura 2013/01/04
    こんな本があるの……
  • エデンの園でおきたこと - steps to phantasien

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

  • Nodeコアの歩き方 ~Nodeの開発に参加しよう~ [Node.js]

    東京Node学園祭2012

    Nodeコアの歩き方 ~Nodeの開発に参加しよう~ [Node.js]
  • try-and-back-off アルゴリズム - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    C++11 には、複数の Lockable なオブジェクトをロックしてくれる std::lock 関数があります。 template<class L1, class L2, class... L3> void lock(L1& m1, L2& m2, L3&... m3); この関数の最大の特徴は、決してデッドロックしないことです。 そして、このデッドロックしないという要件を満たすために使われるアルゴリズムが、try-and-back-off アルゴリズムと呼ばれるものです。 今回はこの try-and-back-off アルゴリズムについて説明します。 (この記事には独自解釈が含まれているので、間違ってる部分とかあれば指摘して頂けると嬉しいです) デッドロックの条件 デッドロックは、正確ではないですが、大まかに言って以下の条件を満たすと発生します。 ロックを取得するために待機を行なう あ

    try-and-back-off アルゴリズム - melpon日記 - HaskellもC++もまともに扱えないへたれのページ