C++
ポエム 現実世界の不具合で出勤時間が消失した分体力が余っているのか、余暇に回す気力がだいぶ戻ってきたので 1000000000 年ぶりくらいに趣味プロをしている。とはいえ別段すごく作りたいものがあるわけではないので、惰性で昔作りたかった WORLD をいい感…
ポエム CMakeLists.txt は便利なのだが、ちゃんと書き方を考えるほど切羽詰まった場面が自分にはなかった。今回は書いていて気になったのでちゃんと書く方法を調べたりしてみた。正直知見がなかったので何でググったっけを書いておくメモみたいなものである…
ポエム しばらく C++ を書いていなかったが趣味は C++ でやりたくなったので gtest を導入してテストを書けるようにしたくなった(テストを書くとは言っていない)。 やりたいこと googletest を手動インストールしないで cmake 側からよしなに依存を解決し…
ポエム 世間が何かと騒がしく外に出るのもままならなくなった反面、在宅勤務で体力が回復してきたので忘れていたコーディングをし直している。とりあえず勘を取り戻そうかと表題の通り音声合成でもやってみる。本職は web エンジニアだったはずなんだがどう…
経緯 Windows で CLion 使った開発を趣味でしているが表題の件でハマった。どういう状況でハマったかを書く。 コンパイラは MinGW を使用している Git は Windows でも Linux コマンドが使えるようなパスを通している cmake を使って github 上のレポジトリ…
ポエム Qt には Undo framework があり、 QUndoStack に QUndoCommand を積んでいけば、いい感じに undo, redo できるようになる。 このときメモリが解放されるのかなど若干動作に癖というか、細かい部分の挙動の記述が少ないので記事にしておく。 Vitallium…
ポエム Qt の SIGNAL/SLOT は強力なんだが、 Undo, Redo を実装しようとしてシグナル止めて無いとユーザ編集と Undo, Redo によるモデルの変更が分からなくて Undo スタックがぶっ壊れるなと思ったので一旦シグナルを止める方法を調べた。 やり方 bool oldSt…
ポエム 何度やっても QT_UIC_EXECUTABLE is missing といいよる cmake に愛想を尽かさず頑張った。 Qt の *.ui ファイルを使う方法がわかったので記事を書く。Qt 記事少なすぎでしょみんなもっと記事書いて!英語記事ですらほとんどないじゃん。 症状 以下の…
概要 Qt の開発というととりあえず QtCreator を使えばいいだろ、と思うのだが、最近 JetBrains から CLion という神ツールが発売された。 CLion: A power tool for a power languagewww.jetbrains.com 業務が IntelliJ だもので操作感が同じというのもある…
ポエム 業務で Scala を書いてるせいか、趣味で C++ 書いていると C++ のエラー処理のヤバさにつらみが溜まるし発狂したい。こういうのほんとうに辛い。 /** * path のファイルに書かれた文字列を返します。 * エラーがあった場合は err に値が書き込まれま…
概要 名前空間内で定義したクラスの qHash 関数の定義で手ひどい罠を踏んだので書いておく。 罠 これはダメなんだってさ。 namespace hoge { class Hoge { public: int foo; } } bool operator == (const hoge::Hoge &left, const hoge::Hoge &right) { retu…
経緯 ブログも久々だが C++ も久々で、書いているとどうにもポインタを触りたくないために、できるだけ参照型で物事を済ませたかった。のだが、そういえば参照型って多態効くんだっけと思って調べたがググらビリティが低かったので自分で調べた。 結果 効く…
経緯 趣味で音声合成っぽいソフトウェアを作っている。いい加減音声ファイルの読み書き部を作らねばならなくなったのだが、C++ WAVE 読み込み 無料と Google 先生に聞いてもマッチョな結果しか返ってこない。これはこれで興味はあるが、音声合成のドメインに…
今趣味で書いているプログラムの保存形式をどうしようか悩んでいたのだが、 XML は前使ってみたとき煩雑だったしもう少し簡単な形式はないものかとネットを見ていたら、どうも Qt5.0 以降から JSON をサポートしているらしい。 QtCore 5.0: JSON Support in …
経緯 以前書いたGoogle Mock を導入してみた。に見るように 普通の仮想メンバ関数のモッキングは大変簡単なのだが、演算子のオーバーロードに対してはモッキングができないのかやり方を調べてみた。 問題 単純に仮想関数をモッキングするだけであれば、MOCK_…
経緯 つい先程テストを書いていて、参照を返すタイプのメソッドをモッキングする際に失敗をしたのでメモしておく。 問題 こんな感じのクラスをモック化しようとする。 class MyClass { public: virtual ~MyClass(){ } virtual const Property &property() co…
経緯 Qt には QTest というテスト用ライブラリがついてくる。 QTestLib Manual http://qt-project.org/doc/qt-4.8/qtestlib-manual.html が、しかしデフォルトだと1プロジェクトに対して1テストだけしか実行できない。 Jenkins に Qt 用のプラグインあるの…
経緯 ようやく余裕ができてきたのか家でときどきコードを書いている。 最近色んな書き方を覚えてきたので、せっかくだし書き方を試してみようと思って、C++ とQtを使ってこんなコードを書いた。 下手くそな英語は放っておいて欲しいが、このクラスはコンスト…