p_tan's blog

勉強日記です。ツッコミ大歓迎

2017-01-01から1年間の記事一覧

複数の.vcxproj間で特定のパスを共有する方法

環境 Visual Studio 2017 C++開発 やりたいこと 巨大なコードベースでVC++のソリューションを分けて開発している時に、すべての .vcxproj でルートディレクトリのパスを共有したい ** 出力ディレクトリやINCLUDEパスなど ただし、環境変数は使いたくない。レ…

CoTaskMemAllocのリークをIMallocSpy で検知する

C++

MSVCでメモリリークチェックと言えば、CRT ライブラリを使用したメモリ リークの検出 が定番ですが、これだとCランタイム経由じゃない CoTaskMemAlloc, CoTaskMemReallocで確保したメモリのリークは検知できません。 そこで IMallocSpy interface (COM) を使…

なぜC#ではなくF#を使いたいのか : 構造化分析と関数型プログラミング #fsharp

F#

この記事は F# Advent Calendar 2017 - Qiita の 11 日目の記事です。 本記事では、なぜ自分がC#ではなくF#を使いたいのかを記したいと思います。 この記事で言いたいこと コンピュータシステムの本質とは入力データを出力データに変換することだと思ってい…

レコードの不変条件を強制する方法 #fsharp

F#

この記事は F# Advent Calendar 2017 - Qiita 10日目の記事です。 F#でレコードを使う場合に、型の不変条件を強制したい場合があったので調べました。 例 : Triangle 型 例えば、以下のような辺の長さ a, b , c を持つ三角形を表すレコードがあったとします…

PODクラスのデフォルトコンストラクタとメンバ変数をprivateにすることでクラスの不変条件を担保する

C++でCと互換性のあるデータ型を使いたい場合は、POD(Plain Old Data)型としなければならない。 C++11 でPODクラスの要件が緩和されたので、PODクラスのメンバ変数やdefaultコンストラクタをprivate に定義できるようになった。 これにより、PODクラスでもコ…

なぜC#よりもF#なのか 2017 #fsharp

F#

以前このような記事を書きました。 なぜC#よりもF#なのか - p_tan's blog 「F# C# 比較」とかでググると比較的上位に表示されるようで、毎日少しずつアクセスがあるようです。 さすがに6年前の記事で内容が古いので、現状での F# を見てみたいと思います。 …

技術習得のレベル

技術習得のレベルについて、最近の思うところ。 プログラミング言語やソフトウェア設計パターン、Webアプリのフレームワークなど、何らかの技術の習得には、以下のようなレベルがあると思う。 レベル0:存在すら知らない レベル1:名前だけは知っている レベ…

ユーザビリティにおける探索/実行モデル

ソフトウェアに限らず、何らかの道具のユーザビリティについて、探索/実行モデルというものを考えている。 ユーザビリティ研究において、もっと整理された理論がきっとあるのだろうが、見つけられていない。 前提 人は、何らかの目的を達成するために、手段…