カンテラの光の下で

dNaga392's memorandom

C++

【C++】Windowsのバージョン情報を取得する

C++

要点 C++でWindowsのバージョン情報を取得します。 Windows 固有のライブラリ ntdll.dll の RtlGetVersion 関数を使います。 内部バージョンが取得できるので、ユーザー向け表示にはひと手間必要です。 説明 Windows のバージョン情報を取得する方法はいくつ…

【C++】std::sort とラムダ式を使ったカスタムソート

クラスや構造体のソートには、標準ライブラリ <algorithm> の std::sort を使う方法があります。 Qt でも同様の qSort がありましたが、 std::sort に置き換えることが推奨されています。 次の例は、座標情報のリストに対して、第1ソート条件にX座標の逆順、第2ソート条</algorithm>…

【Qt】QSignalMapperは まいそうされます。

画像のような複数のUIの操作に応じて一つのUIを更新する処理は QSignalMapper が担ってきました。 しかし Qt5 では QSignalMapper は非推奨とされ、 ラムダ式 への置き換えが推奨されます。 そこで、実際にどのように置き換えていくかをここに記録します。 …

【C++】ifstreamで一行戻す

C++

ifstrean には「一行戻すため」の関数は存在しない。しかし、tellg() と seekg() を用いることで実現できる。 std::ifstream myReadFile("route.txt"); .... auto oldpos = myReadFile.tellg(); // stores the position getline(myReadFile, line); myReadFi…

【C++11】スコープ列挙型(Scoped enumerations)

TL;DR enum classで定義した列挙型は、従来のenumに加えて、「整数型への暗黙の型変換を行わない」「列挙型のスコープを持つ」という機能を持つ。 enum class Color { Red, Green, Blue }; // 単にRedと指定するのではなく、どの列挙型に属するのかを指定す…