ゲーム開発者のための C++11~C++20, 将来の C++ の展望 【CEDEC ページ】https://cedec.cesa.or.jp/2020/session/detail/s5e8327a52702c.html 【解説付きの書籍版 📚】https://zenn.dev/tetsurom/…
コンパイル時計算完全に理解したリクルートテクノロジーズの竹迫です。 この記事はRecruit Engineers Advent Calendar 2019の4日目(12/4)のエントリーです。先月、社内のTGIFで飛び入り発表したスライドを記事にまとめなおしました。 adventar.org 皆さんは素数を数えることが好きでしょうか?私は大好きです。 問題:MAX以下の素数の個数を数えよ。 与えられた数以下の素数の個数を予測する「ガウスの素数階段」を作る簡単な問題です。素数かどうかを判別するにはどんな数字でも割り切れないことを確認する必要があるため、ナイーブに素数判別を計算するとどうしても時間がかかってしまいます。(※厳密に素数の個数を予測する魔法の「リーマンの素数公式」はとても面白いのですが、今回の記事では解説対象外です。) 引用元:http://tsujimotter.hatenabl
quickrun.vim は言うまでもなく、とても便利なプラグインなのですが、C言語もしくはC++を書く人にとって少し使いにく所があります。 quickrun はファイルタイプに従ったコマンド定義に従って編集中のファイルを実行してくれます。C/C++ であれば実行可能なコンパイラでコンパイルし、実行した結果を表示してくれます。 しかし例えば C++ で boost を使う場合、ヘッダオンリーな物であれば問題無いのですが、ライブラリをリンクする必要がある場合には、quickrun では面倒な実行方法を取らざるを得ません。 ユーザからすれば #include <boost/filesystem.hpp> と書かれていれば、出来れば -lboost_filesystem をリンクして欲しいものです。今日はそれを実現してくれる quickrunex.vim というのを作りました。 上記の様に bo
そういえば C++ のヘッダファイルを #include するだけで使える GC を書きました。使い方は下のサンプルコードを見てもらえばいいとして、特徴としては、 ヘッダファイルを #include するだけで使える C++ の標準機能だけを使っているのでポータブル*1 mark-and-sweep, precise GC ってなあたりでしょうか。コードは GitHub - kazuho/picogc: a tiny, portable, precise, mark-and-sweep GC in C++ にあります。 C++ のプロジェクトで、ちょっとここだけは GC がほしいんだけど、ってなケースで使いやすいと思います。速度も、そこそこでるんじゃないかな*2。 というわけで、以下、サンプルコード。軽く説明しておくと、 GC を使うクラスは picogc::gc_object を継承する
node.js のドキュメントを見ていたら C/C++ で簡単に拡張が書けそうだったので試してみた。 addons - Node.js Manual & Documentation ドキュメントに載っている hello.cc をみてみると: #include <v8.h> using namespace v8; extern "C" void init (Handle<Object> target) { HandleScope scope; target->Set(String::New("hello"), String::New("world")); } この extern "C" void init (Handle<Object> target) というやつが、jsで require("hello") したときに呼ばれる感じらしい。この関数だけは必ず実装する必要がある。 この中の Ha
Boost の一部ながらも「実用的」すぎるため、とかくテンプレートメタプログラミングを愛好する諸兄から黙殺されてきた不幸のライブラリ、Boost.Python。Boost.勉強会でこいつの魅力を伝えようと思ったのだけど、時間の都合で無理だったので、簡単に紹介してみたい。 Boost.Python の基礎 Boost.Python は C++ のクラスや関数をラップする Python モジュールを恐ろしく簡単に書けるようにする、強力なライブラリである。 特に、Pyrex や Cython と比べて何がうれしいのかというと、 Python側にいちいちラッパ関数を書かなくてよい (テンプレートにより自動的に定義される) コンバータを登録することで、Python⇆C++の型の透過的な変換が容易にできる C++ のクラスを分かりやすい形で Python のクラスとして見せることが可能 といった点が挙
■今回は、Win32API + C言語でテトリスを作る様子を実況してみました。■徐々にテトリスが出来ていく様を楽しんで頂けましたら幸いです。■一発撮りです。バグやミスを頻発させております。申し訳ありません。■gcc、ペイントブラシ、EmEditor、電卓での制作です。■randomのシードを入れていないのは、バグではなくて仕様です。キリッ■次回作の要望などは、Twitterの「tkihira」宛にメッセージをもらえると、確実に読めるのでうれしいです。■今までの作品はこちらで見ることができます→http://void-main.org/niconicoprogram/■(おまけ)ゲッダン→sm8543534■週刊ニコニコランキングで、#128という記念すべき回にてランクインしました!→sm8561979■マイリスト→mylist/16170739
cppref-mode 奥 一穂さんのCpprefをemacsから使えるようにしたelispです。 Cpprefの詳細は下記 http://developer.cybozu.co.jp/kazuho/2009/10/cppref-reading.html cpprefのパッチ cpprefはそのままではw3mを起動するようになっているため、以下のパッチを当ててw3mでダンプした結果を利用するように変更します。 *** cppref 2009-10-09 03:57:53.000000000 +0900 --- cppref.modified 2009-10-09 00:01:54.000000000 +0900 *************** *** 50,56 **** sub open_file {cppref-mode.el my $fn = shift; ! exec 'w3m'
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
書いたといっても結構前からあったのですが、いらん所を削ぎ落として軽量Webサーバとして仕立て上げました。 軽量とは言えど、CGIを使って結構色々動きます。 例えば、ソースアーカイブを解凍したらCGIがあって、apacheから見える場所にコピーして...とか面倒くさかったりしますよね。 おれは今すぐWebサーバを起動したいんだ!そして今いるディレクトリのファイルをWebサーバからサーブしたいんだー! って事ないですか?blogソフトウェアをダウンロードして今すぐ試したいけど、apacheインストールされてなかった...とか悲しすぎます。 今回紹介する"tinytinyhttpd"(tthttpd)はそんな、小さい様で大きな問題を解決出来るかもしれないソフトウェアです。 mattn's tinytinyhttpd at master - GitHub tiny tiny httpd http:
kazuhoさんがやってくれました。 ずいぶん前からjsonをC++でパース(SAXじゃなくてDOM)するのに小さいライブラリないかなーと思ってました。個人的にはjson-cというのを使ってたのですが、幾らか気に入らない所があったりビルドが少し手間だったりしていました。STLしか使わなくてvectorとかmapで表現されるツリー構造な物が欲しいなぁって思ってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、githubにあるjsonxxとかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から本格的に書き始めてついさっき出来上がりました。速いw 名前はpicojson とても小さく、実装コードだと300数十ステップ程です。しかもヘッダファイルだけなので管理が楽です。 試しにwassrのpubl
「Why C++ is like teenage sex」というネタがあるようです。 古さを多少感じますが結構笑えます。 色々な英語サイトで紹介されており、実際にどこがオリジナルなのかは発見できませんでした。 検索すると微妙に内容が異なる物もありますが、内容は以下のような感じです。 興味がある方は、「Why C++ is like teenage sex」という検索キーワードで検索してみて下さい。 C++は中高生のセックスに似ている。何故ならば。。。 みんな、そればっかり考えている みんな、その話ばかりしている みんな、他の人もやっていると考えている 実際にやっている奴はあまりいない やっている少数の人々は: 下手 次はもうちょっと上手になってるだろう 安全にやってるわけじゃない 成功体験を言いふらしてるけど、実際にやったことがある奴は少ない 原文 C++ is like teenage
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
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
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く