ゆとりーなの日記

日記的な事を書いて行くと思はれる

MSVCでのデバッグ小ネタ

メモリリークを調󠄁べる _CrtSetDbgFlagを使󠄁とメモリリークが檢出できる。アプリ終󠄁了時にメモリの解放忘れがあると、デバッガにその情󠄁報を出力してくれる。 _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); デバッグビルドでしか有效にな…

unique_ptrでCOM初期化󠄁

unique_ptrでCOMを管理するならReleaseする專用デリータを作つて template <typename Com> struct com_delete { static_assert(std::is_base_of<IUnknown, Com>::value, "Com require inherits IUnknown."); void operator ()(Com *com) {com->Release();} }; template <typename Com> using unique_com_</typename></iunknown,></typename>…

COMのシングルトンを作る時の罠

今日も華麗にCOMに嵌められたのでメモ。 畫像の讀込󠄁みにWicAPIを使󠄁ふ場合、IWICImagingFactoryは1つあれば十分󠄁さうなのでシングルトンにしたいなと思ふのは人情󠄁である。この時IWICImagingFactory *はスマポで當然管理する事になる。 class wic_imaging_…

COM風の繼承にC++の常識は通󠄁用しない

C++を打つ者󠄁にとつては「"インターフェースクラス"の"デストラクタ"を"virtual"にする」事は日本語で云ふ「"私は"の"は"は"わ"ではなく"は"と書く」くらゐの常識であるが、DirectX等でお馴染みのCOMではこの常識は通󠄁用しない。 例へばXAudio2なんかではボ…

VisualC++2013の警吿

確か以前󠄁のバージョンにはなかつたと思ふのだが、VisualC++2013には「警吿を全󠄁て有効にする(/Wall)」と云ふオプションがあつた。これを使󠄁ふと-Wallとしても全󠄁然出さない警吿があるgccとかと違󠄂つてMSVCは全󠄁力で警吿を出してくるらしい。しかしいざこれ…

_com_ptr_tとテンプレートエイリアス

VC++2013ではテンプレートエイリアスがサポートされてゐるので、_com_ptr_tの型宣言の際にマクロに賴らなくても綺麗に書けるのではと思つて試してみた。 template <typename T> using com_ptr = _com_ptr_t<_com_IIID<T, &__uuidof(T)>>; int main() { com_ptr<ID2D1Factory> factory; } 通󠄁つて欲しかつたがコンパ</id2d1factory></_com_iiid<t,></typename>…

H8マイコン用のg++4.9.1

C++

2年前󠄁はH8マイコンでC++11 - 名古屋313の日記にてエラーが出るけどlibstdc++は使󠄁はないし良いかと甘えてgccを作つてゐたが、今回なんとwindows8.1のMinGW-w64環󠄁境でエラー無しにビルドする事ができたのでメモ。先づbintuils。一應ビルドディレクトリは…

Visual C++2013のto_string

何故かto_stringネタが續いてゐるが、twitterを見てたら懷かしい記事VC++2010のto_stringは使いものにならない - 名古屋313の日記が出てきたので折角Windows8.1環󠄁境を入手したんだしVisual Studio 2013のDesktop版を入れて試してみた。 #include <string> int ma</string>…

MinGWはto_stringが刈り取られてゐたでござる

C++

久々にC++やつたのは良いのだが、MinGWのg++4.8.1だと其の儘ではstd::to_stringが使󠄁へないらしい。 この單純なコードをコンパイルすると #include <string> int main() { std::to_string(1); } この通󠄁り。 $ g++ -std=c++11 hoge.cc hoge.cc: In function 'int mai</string>…

戾り値auto

C++

今更󠄁だが戾り値のautoは飜譯單位分󠄁けると利かない。 // hoge.h auto hoge(); // hoge.cc auto hoge() { return 0; } // main.cc #include "hoge.h" int main() { auto h = hoge(); // 怒られる! } まあ良く考へたらそらさうだ...。

Paiza、そのI/Oゲーを越えて

C++

前󠄁回PaizaとはI/Oゲーである - 名古屋313の日記にて、野田さんの案件が如何にI/Oゲーであるかを暴き出した訣ですが、最速󠄁記錄である0.01秒の壁は越えられずにゐました。流石にI/O關聯でもう手を付けられる所󠄁は殘つてゐないと思つたので、かうなるとも…

operator +の自動生成󠄁のconstexpr化󠄁は詰んでゐなかつた

C++

operator +の自動生成のconstexpr化は多分詰んでる - 名古屋313の日記にて詰んでゐるとされてゐたoperator +の自動生成󠄁のconstexpr化󠄁だが、C++14仕樣になつたら別に詰んでゐなかつた。 template <typename T> struct addable { friend constexpr T operator +(const</typename>…

PaizaとはI/Oゲーである

C++

一部界隈で話題になつてゐる「新人女子プログラマの書いたコードを直すだけの簡単なお仕事です!|paizaオンラインハッカソンVol.1」に、アルゴリズム弱󠄁者󠄁の私も挑戰してみました。 で、取敢ずこんなコードで挑む訣です。 #include <algorithm> #include <iostream> #include <vector> t</vector></iostream></algorithm>…

clangは麻雀が作りやすい

C++

clangは素晴󠄀らしい事に識別子に日本語が使󠄁へるので、英語弱󠄁者󠄁の私が識別子名で惱む事がないのです。 牌の型の定義も簡單で、可讀性も屹度高い筈です。 enum 牌種 { 一, 九, ①, ②, ③, ④, ⑤, ⑥, ⑦, ⑧, ⑨, 1, 2, 3, 4, 5, 6, 7, 8, 9, 東, 南, 西,…

Linux Mint16のclang3.4で--std=c++1yやると案の定起こるgetsない問題

C++

愛用してゐるLinux Mintの最新版が出たので更󠄁新しました。で、Ubuntuの最新版でclang3.4が使󠄁へると聞いてゐたので、大體近󠄁似出來るMintにもあるだらうとの見込󠄁みで早速󠄁パッケージマネージャを見に行くと嬉しい事にあります。大勝󠄁利です。これでC++1yで…

代入した方が早し

C言語でとある構󠄁造󠄁體のswapを實裝すると云ふ話に某所󠄁でなつたのですが、 // とある構造體 struct hoge { int a; int b; char c[32]; // 文字列を想定 }; この構󠄁造󠄁體をコピーする際に普通󠄁に=を使󠄁ふかメンバを總て明示的にコピーするかでどちらが良いか…

新字體風漢󠄁字遊󠄁び

最近󠄁twitterの背景をなんちやつて新字體にしてみたのでその話でもチマチマと。 劃 「畫」の部分󠄁を現行の「画」に合はせた形です。餘り見かけない字かもしれませんが「計劃(計画)」とかに使󠄁はれる事がある字です。 濁 「獨」「觸」と云つた字は「独」「…

DXライブラリとrandom_shuffleが微妙に噛合はない

C++11環境ではshuffle函數があつて、正直此方の方が良い感はあるのですが、DXライブラリを使つてゐる場合はC++11の亂數ではなくてDXライブラリの亂數を使つた方がグローバルでゲーム向きなところもあるのでDXライブラリの方の亂數を使ふと云ふ事もあるかと思…

「理系學生・オタクはみんなチェックシャツだよね」と煽られる位なら本物の國民服を着よう

はじめに竝べる御託 この國にも戰時體制期は自由に服裝を選ぶ事が出來なかつたらしいですね。國民服を着ないで少しでも派手だつたりすると官權に注意されたり、御近所から白い目で見られる樣な時代があつたのです。私は當時を生きた訣ではないので想像しか出…

しんにようの書き方

みなさんしんによう(辶)はどう手書きで書いてゐたでせうか。私は小學校時代に漢字ドリルとやらで叩きこまれた所謂教科書體準據で と書いてゐました。しんによう部の左のウネウネを上手く書くのに苦勞した記憶があります(因みにこれから載せる字はすべてノ…

颱風の字

コミケの季節にこんな感じのネタ投稿を行なひました。「年齢確認お願いします。たいふうの漢字表記は?」 A「台風」 B「颱風」 C「臺風」 「Aさん免許証の提示を。Bさんようこそいらっしゃいませ。あとCさんはにわかですね。」 #年齢確認行動大喜利— 隅須 ゆ…

GNU擴張({})がやばい

普通複數のカウンタをインクリメントするfor文を書く場合、 for (i = j = 0; i < N; ++i, ++j) { } としますが、今日twitterにて for (i = j = 0; i < N; ({++i; ++j;})) { } といつた回答を見かけたので、そんなん通る訣ないだらうと思つてコンパイルしてみ…

日傘は女の物か?

最近男の日傘がどうのかうのと云つた話がよくTLに流れてきます。日傘を差すと強い日光が防げて色々とメリットもあるのにどうも男が差すと「女つぽい」とか「男らしくない」みたいな話が出て來て"あーだこーだ"みたいな話です。どうも男が日傘差すと微妙と云…

機械語で語らう

C言語の會話でprintf("おはやう");みたいにするのは本質的にはC言語で會話してゐるとは言へないと云ふ話がありましたので、ここは大人しく機械語で會話出來るやうになるべく、機械語で最も話されてゐる言語、x86語の文法を御浚ひしておきませう。 まづ基本的…

「訊く」つて戰前本當に主流ぢやなかつたのか

この間私の中で「質問して下さい」的なニュアンスで、「訊く」と「聞く」どつちを使はうか迷つたと云ふ事案がありました。その時は結局「訊く」だと訊問からの問い詰めるつぽくてあれかなと思つたので結局無難な方の「聞く」を選んだのですが、これを機に今…

とあるプラーのverilog遊戲

最近verilogを弄つて遊んでゐるのでチラチラプラー的感想でも書いてみようかなと思つたので書いていきますよと。 まあ全體的な感想を言へば可也クソに感じますね。特に組合せ囘路を書くのが辛いです。まあ勿論verilog初心者の感想なので、後ろから打たれる可…

最近マイブームの可變長引數

風呂あがりに何となくBinary Hacks ―ハッカー秘伝のテクニック100選高林 哲 鵜飼 文敏 佐藤 祐介 浜地 慎一郎 首藤 一幸 オライリー・ジャパン 2006-11-14売り上げランキング : 131355Amazonで詳しく見る by G-Toolsを讀んでゐたのですが64bit環境のLinuxでN…

C++をJavaScriptに變換するあれ

C++

今日はBoost勉強會に行つて來た訣ですが、その中でC++のHello World!をJavaScriptにすると12萬行になると云ふ話があつたので自分でも試してみました。 まづ普通にC++です。 // hoge.cc #include <iostream> int main() { std::cout << "Hello World!" << std::endl; } </iostream>…

自作CPUはじめました

さてさて仕事も全然決つてゐませんし現實逃避感が否めませんが、 折角手元に AZPR EvBoard AZPREVBOARD 余熱@れすぽん製|マルツオンライン とCPU自作入門 ~HDLによる論理設計・基板製作・プログラミング~水頭 一壽 米澤 遼 藤田 裕士 技術評論社 2012-10-2…

可變長引數と非POD

C++

かういふ可變長引數を取る函數があるとします。所謂printf系男子ですね。 void foo(const char *f, ...); で、これにかういふ構造體を用意します。コンストラクタを自分で定義してゐるので非PODです。 struct hoge { hoge() {} operator int () const { retu…