yumetodoの旅とプログラミングとかの記録

旅や登山の記録やプログラミング関連の話とかフリーソフト紹介とか

プログラミング(C/C++)

C++erらしくRAIIしつつmmap

teratail.com に回答するために、mmapを調べていたら nnabeyang.hatenablog.com という記事を見つけたのだが、これはCで書かれているのでC++から使うためにラップした。 どうもWindowsの場合は上述ブログ中のget_filecontentで開いてclose_mapで閉じるらしい…

WindowsのコンソールででまともにUnicodeを扱えるようになったのがいつなのかメモする

毎回windows10 chcp65001 update site:qiita.comとかしてググっているのは生産性がないのでメモ。 以前はchcp 65001とかしてもフォントの問題からまともにUnicodeを扱えているとは言えなかったが、Windows 10 Anniversary Update (バージョン1607, RS1) から…

C++++++++++++++++++++

はじめまして。後置の++は確か重ねられなかった気が。++C とするべきでしたね。#C— utubyou009@護国−憲法破壊反対 (@utubyou009) January 11, 2019 をみて文脈なんて考えずに反射的に せやろかhttps://t.co/2vg4uOf2K3 https://t.co/2Wmy8huCEf— yumetodo-…

ものすごく雑にlibstdc++のvectorの実装でcapacity決めているところを追う

std::vectorのメンバ関数push_back/emplace_backなどを使っているときにlibstdc++の実装だとcapacityが倍づつ増えていくのですが、それがソースコードのどこに該当するか調べました。 C++ の string と vector の reserve() の挙動 - bkブログ 2009年のこの…

なぜusing namespace std;を避けるべきか

もうすでにN人がN回言ってる有名な話なのですが改めて。 結論 よく分からないならusing namespace std;を使わない あとこれは難しいかもしれませんが、エラーの中から英語っぽいのを探して検索を掛けましょう。ほぼ100%解決策が出てきます。あと「よく分から…

雑にこれまで触ったことのあるプログラミング言語について語る

はじめに どうもTwitterの私のTLでは #いいねされた数だけ触ってきたプログラミング言語について語る というタグが流行っているのですが、そんなにたくさん触っていない弱者としては怖くてそんな募集はできないので自分で書きます。 記憶している範囲で触っ…

CMakeからVisual Stduo 2017でコンパイルしたBoostを探すのは時期尚早かも

Visual Studio 2017がリリースした さて、Visual Stduo 2017が出てすでに1ヶ月経った。私も重い腰を上げて導入した。 www.visualstudio.com をみると割りと頻繁にアップデートが来ていたりする。 Visual Studio 2017でBoost 1.63.0をコンパイルする 現在Boos…

Re:ある「プロ」の書いた、初心者向けc言語入門プログラム

きっかけ @yumetodo ところで #C言語 ではこんな「プロ」がいてキレたことがあります。「初心者にこんなの見せるな」以前に「この人の関わったソフトは買うな」レベル。https://t.co/ynDpyNMOEw私の自作の悪戯:https://t.co/O91FdfLIBu— utubyou009@憲法破…

OpenCV3.1の導入withCMake

以前OpenCV 2.4.9導入-with CMake という記事を書きましたが、それからバージョンアップが続き、ついに3.1がリリースされました。 またコンパイラもVisual Studio 2015がUpdate1でようやく安定して使い物になるようになりました。 というわけで改めてまとめ…

Visual Studio 2015でconstexpr delegating constructorが通らない

初めに Update 1でfixされました。やったね。 みなさまナマステ。ええっとまあタイトルのとおりです。 delegating constructorもconstexprもC++11の機能ですが(C++14のconstexpr関数の制限緩和は今回関係ない) constexprコンストラクタから他のconstexprコン…

Boost1.59.0をなんとなく導入する

皆様、ナマステ。 いやね、私は確かにmsxmlのラッパーを書いていたはずなんですよ。 そしたらいつの間にかBoostを導入していました。使う予定も無いのに。 きっとmsxmlのラッパーが何故にや知らんcmp命令で落ちるので xmlの読み込み途中で落ちる · Issue #2 …

深夜テンションでC言語プログラムを解説するPart 1

きっかけは、Mincraftの魔術mod、Witcherryの解説動画といえばこの人、 まとらさんの http://www.nicovideo.jp/user/17540909 http://com.nicovideo.jp/community/co2082219 のこのツイート。 プログラム自体はあってると思うんだけど いざ実行するとエラー…

無意味だとしても私はPGOビルドをする

PGOビルドとは まあざっというとif文の条件分岐予測とか関数のinline展開を適切にするとか関数の配置を最適化するとかして気持ち実行速度を上げる方法です。で、大雑把な手順は ふつーにビルド(若干コンパイルオプションをいじる) 空のプロファイルを作る テ…

L-SMASH/L-SMASH Works自動ビルドツール

AviUtlのプラグインで有名なL-SMASH Works、この度MaverickTse氏がビルドツールを作ってくれたので紹介します。 @yumetodo MSYS2版のLSW Build script ができた。MSYSより速いはず。 https://t.co/u1kW5UGXVU — 芳乃さくら(ぽい) (@MaverickTse) 2015, 3月 2…

FFmpegAPIをVisual Studioで使えるように導入する

今回はなんとなくffmpegAPIを導入します。いや、音楽再生で真っ先に思い浮かんだのがffmpegだったもんで。え?DirectX?DxLib?知らない子ですね(ぉい)。この記事ではFFmpegをビルドするなんてことはしません。 @yumetodo zeranoeのビルドがいっぱいExternal…

OpenCV 2.4.9導入-with CMake

OpewnCV3.1対応の記事を改めて書きました。 OpenCV3.1の導入withCMake そちらを御覧ください。 今回はOpenCVを導入します。というのも今高速でスクリーンショットを取るソフトを作ってるのですが、なんかOpenCV使った方がいいみたいなことを知恵袋で言われた…