potisanのプログラミングメモ

プログラミング素人です。昔の自分を育ててくれたネット情報に少しでも貢献できるよう、情報を貯めていこうと思っています。Windows環境のC++やC#がメインです。

2020-12-01から1ヶ月間の記事一覧

WIL GitHub Wiki 型検証ヘルパーの和訳・改変

MicrosoftがGitHubでMITライセンス公開しているWILのGitHub Wikiから記事を和訳・改変したものです。素人による翻訳なので、誤訳や著作権上の問題などありましたらご連絡いただけますと幸いです。 型検証ヘルパー(原題:Type validation helpers) Raymond …

WIL GitHub Wiki string_makerの和訳・改変

MicrosoftがGitHubでMITライセンス公開しているWILのGitHub Wikiの記事を和訳・改変したものです。素人による翻訳なので、誤訳や著作権上の問題などありましたらご連絡いただけますと幸いです。 string_maker Raymond Chen、2020/1/24、リビジョン1個 wil::d…

WIL GitHub Wiki テンプレートメタプログラミングヘルパーの和訳・改変

MicrosoftがGitHubでMITライセンス公開しているWILのGitHub Wikiの記事を和訳・改変したものです。素人による翻訳なので、誤訳や著作権上の問題などありましたらご連絡いただけますと幸いです。 テンプレートメタプログラミングヘルパー(原題:Template met…

WIL GitHub Wiki 引数処理ヘルパーの和訳・改変

MicrosoftがGitHubでMITライセンス公開しているWILのGitHub Wikiから記事を和訳・改変したものです。素人による翻訳なので、誤訳や著作権上の問題などありましたらご連絡いただけますと幸いです。 引数処理ヘルパー(原題:Parameter handling helpers) Ray…

WIL GitHub Wiki 最終エラー(Last error)の保存の和訳・改変

MicrosoftがGitHubでMITライセンス公開しているWILのGitHub Wikiの記事を和訳・改変したものです。素人による翻訳なので、誤訳や著作権上の問題などありましたらご連絡いただけますと幸いです。 最終エラー(Last error)の保存(原題:Last error preservat…

WIL GitHub Wiki Win32ヘルパーの和訳・改変

MicrosoftがGitHubでMITライセンス公開しているWILのGitHub Wikiの記事を和訳・改変したものです。素人による翻訳なので、誤訳や著作権上の問題などありましたらご連絡いただけますと幸いです。 Win32ヘルパー(原題:Win32 helpers) 使い方 文字列長定数 …

C# 匿名型と「is not {...} x」パターンマッチングのサンプルコード

C#

動作確認環境:C# 9.0 「++C++; // 未確認飛行 C」に匿名型とis not {...} x形式パターンマッチングの記事(リンクは記事末尾)がありました。どちらも使ったことがなかったので、自分用のサンプルコードとして。 using System; // 匿名型の作成 var t = new…

C# Win32エラーコードをHRESULTへ変換する関数GetHRForWin32Error

C#

動作確認環境:C# 8.0(.NET Core 3.1)、9.0(.NET 5.0) Win32エラーコードをHRESULTへ変換する関数です。System.Runtime.InteropServices.MarshalクラスはDllImport属性の付いた関数の最終エラー(呼び出し直後のGetLastError関数の結果)からHRESULTへ変…

C# レコードにCreate静的メソッドを持たせる

C#

動作確認環境:C# 9.0(.NET 5) レコードは特殊なクラス(参照型の複合型)であり、クラス同様の静的メソッドを持つことができます。これを利用してインスタンスの作成を試行するCreate静的メソッドを実装できます。クラスの当たり前はレコードでも可能であ…

C# 9.0 複合型に加わったレコード

C#

C#の複合型は構造体とクラスの2種類であり、C# 8までキーワードはclassとstructだけでした。C# 9.0からはここにrecordキーワードが追加されました。recordの実体は特別扱いされるクラスです。 型の分類を表にすると以下のような状態かと思います。レコードは…

C# 9.0 Windows 10の拡張子の分類情報等を取得する

Windows 10で拡張子の分類情報など(Perceived Type等)を取得するにはWin32APIのAssocGetPerceivedType関数を使用します。以下はそのサンプルコードです。recordやnew (...)を使用しているのでC# 9.0以降対応です。 using System; using System.Runtime.Int…

C#言語関係

C#

このブログのC#言語記事のまとめページです。ページ名の前に8、9、8-9がある場合、そのバージョン(C# 8、9、8-9)で動作確認しています。 言語機能 文字列 コレクション・LINQ 実行ファイル プラットフォーム呼び出し(P/Invoke)全般 その他 Windows開発 …

C++言語関係

C++

このブログのC++言語記事のまとめページです。先頭の数字はC++のバージョンを指します(20→C++ 20等)。 言語機能 標準ライブラリ 文字列 コンテナ・スマートポインタ レンジ(Ranges) 標準入出力 整数 その他 Windows開発 標準入出力 デバイスIO COM セッ…

その他言語関係(Windows一般、JavaScript、PowerShell、Python 3)

このブログの記事数の少ない言語のまとめページです。 一般 Windows一般 JavaScript PowerShell Python 3 R Ruby 一般 情報量の単位KBの変遷とkB、KiB Firefox 91.0でDuckDuckGo Privacy Essentialsがはてなブログの記事編集を妨げていた Windows一般 リソー…

C# isによる3種類のパターンマッチング

C#

動作確認環境:C# 9.0(.NET 5.0) isによるパターンマッチングの概要と具体例です。 概要 isパターン 概要 型パターン 式の型キャスト結果を変数に保持してキャスト可否を返却する。 定数パターン 式が定数式を満たすか判定する。 varパターン 式の結果をロ…

C# 9.0 ushortのushort範囲制限加減算

C#

ushort型の加減算のはみ出し switch式による加減算はみ出しの抑制 isのvarパターンによるはみ出し抑制 Math.Clampによる例 ushort型の加減算のはみ出し ushort型はint型として加減算されるため、計算結果がushortの範囲(0-0xffff)をはみ出す場合があります…

C# WinAPIを使ったHLS色構造体

動作確認環境:C# 9.0(.NET 5) WinAPIを使ったHLS色構造体のコードです。Color型およびタプル(Tuple<ushort, ushort, ushort>およびValueTuple<ushort, ushort, ushort>)との相互変換をサポートしています。Colorとは異なりひとつの整数で表すことを前程としないため、IComparableおよびIComparable<T>は実装</t></ushort,></ushort,>…