タグ

ブックマーク / ufcpp.net (4)

  • GetUnicodeCategory(int codePoint) を提案してみた

    今日は、.NET で、U+10000 以上のコードが割り当たってる文字の Unicode カテゴリー判定をする方法について。 提案を出したらそのままプルリクを出すことになった話。 背景 U+10000 以上の文字 Unicode について詳細は、昔書いた記事があるのでそちらを参照。 Unicodeとは? その歴史と進化、開発者向け基礎知識 Unicodeと、C#での文字列の扱い ここではさらっと。 U+10000 以上に割り当たってる文字は、要するに、以下のようなものです。 Unicode 設計当初に想定していなくて、後から「追加面」(supplementary planes)として定義した UTF-16 だと1文字で表せない なので、サロゲート ペア(surrogate pair: 代理対)っていう2文字1組のコードで表す UTF-8 だと4バイト文字になる 一部のマイナーな漢字、マイナ

    GetUnicodeCategory(int codePoint) を提案してみた
    kkamegawa
    kkamegawa 2018/01/22
    “「Visual Studio でリファクタリング機能を使えばほんとに一瞬」。 しかし、そこには罠があったのです。” / 孔明の罠w。条件コンパイルじゃなくて、csprojだと気付かないよなぁ。
  • Rune と fast Utf8String

    ※ () 付きの物は文字としての型がないので「代わりに使うとしたら」 Java とか C# とか、char がUTF-16を指す言語は「前世代」感を隠せないとしても… Unicode コンソーシアムもこういう用語をちゃんと定めないんもんだから場所によって符号点って呼ばれたりスカラーって呼ばれたり… Rust は Unicode 符号点を指して char とか呼んでるけども、結合文字とか不可視文字とかあるからやっぱ「それがcharか?」と言われると微妙だし… そ し て Go… 上記の issue を最近始めてちゃんと読んだんですけども、よく見たらこんなことが書いてあるわけですよ。 "Code point" is a bit of a mouthful, so Go introduces a shorter term for the concept: rune. The term appea

    Rune と fast Utf8String
    kkamegawa
    kkamegawa 2017/12/07
    確かにコードポイントそのものを指すデータ型はほしいとは思う。こうもあれやこれやあるとねぇ…しかしミゲル氏とんだとばっちりw(いやわからなくもない)
  • Updating Visual Studio 2017 Release Candidate

    先月出たVisual Studio 2017 RC、ちょこっとアップデートが掛かりました。 Updating Visual Studio 2017 Release Candidate 小ネタ集?そんなの休み休み。 ちなみに、MSDNブログには「前のRCを入れてる人はアップデートの通知が出るはずだからそこからアップデートできる」って書いてあるんですが、うちではなんかトラブって、結局アンインストールからのインストールしなおしでした。 (ASP.NET がらみのVSIXパッケージが1個インストール失敗してた。) 新旧 csproj 概ねバグ修正っぽいんですが、個人的にうれしいのは、ようやくだいぶ .NET Core Tooling周りがマシになってきたこと。 昔ながらのcsproj (普通に .NET Framework向けライブラリ作ったり、旧Portable Class Libraryを作っ

    Updating Visual Studio 2017 Release Candidate
    kkamegawa
    kkamegawa 2016/12/14
    うちの環境も、VSに通知が出たのは一つだけで、あとは新しくインストーラーをダウンロードしなおして、実行すれば変更されたみたい。office devのmsiが失敗したのもあったけど、とりあえず無視。
  • [雑記] 非同期制御フロー

    概要 C# 5.0のasync/awaitがなかったころ、少し複雑目な非同期制御フローをどうやって実現していたかという話。 C# 5.0を使えない状況下で非同期処理を書くことになった場合の参考としてや、async/awaitがどうやって実現されているかを知るきっかけになると思います。 サンプル コード(ZIP 形式。proj/sln 含め一式。) ポイント C# 5.0(await演算子)便利だなー await演算子が内部的にやっていることは、イテレーターに近い なので、昔はイテレーターを使って非同期処理をすることが結構あった サンプルの要件 今回の例として使うのは、Figure 1に示すような、確認ダイアログ表示のフロー。 確認ダイアログを表示する例 要は、何かを実行するにあたって、特定条件下では確認ダイアログの表示が必要で、すべてのダイアログで「OK」を押したときにだけ実行に移るという

    [雑記] 非同期制御フロー
    kkamegawa
    kkamegawa 2012/10/01
    「非同期なんてめんどくさいだけで近寄りたくない!」と思っている方にはぜひ折りたたまれているコードを見ていただきたい。グサッと来た人はぜひasync/awaitを!
  • 1