タグ

stringに関するrydotのブックマーク (5)

  • GitHub - fmtlib/fmt: A modern formatting library

    Simple format API with positional arguments for localization Implementation of C++20 std::format and C++23 std::print Format string syntax similar to Python's format Fast IEEE 754 floating-point formatter with correct rounding, shortness and round-trip guarantees using the Dragonbox algorithm Portable Unicode support Safe printf implementation including the POSIX extension for positional arguments

    GitHub - fmtlib/fmt: A modern formatting library
  • std::stringのSSO(Small-string optimization)がどうなっているか調べた - Qiita

    GCC と Clang の SSO が気になったので調べました。 SSO(Small-string optimization)とは 通常、std::string は文字列を確保する際、動的にメモリを確保します。 しかし "aaa" とか "hogehoge" とかの小さい文字列でメモリをアロケートするのは勿体無い。 何とかメモリを確保せずに済ませようと頑張って最適化された実装が SSO です。 具体的には、std::string オブジェクトの中に文字列を格納します。 こうすることで、メモリをアロケートせずに文字列を格納できます。 ただし、これは全ての std::string オブジェクトのサイズが増えることになります。 通常、std::basic_string には以下のデータが必要になります。 文字列の実体へのポインタ 利用している文字列のサイズ(size) 確保している領域のキャパシ

    std::stringのSSO(Small-string optimization)がどうなっているか調べた - Qiita
  • String.format("%d", i)で数字が出てくると思ってたら死んだ話 - Qiita

    あるSlackでの会話 何がおきているのか Android 端末でプラットフォームの API バージョンを出すのに、ちょっと色気を出して、 なんて書いたりします。で、だいたい android-22 みたいな感じになるんですけど、でもやっぱり世界ってのは広くて、ふと見たらなんか android-١٦ とか android-၂၂ とか不思議なやつがいるんですよ。 何それ読めない。 もしかして SDK_INT が変な端末がいるのかな??と一瞬考えたんですが、 Build.VERSION.SDK_INT は名前通りプリミティブな public static final int なので疑いようがなかった。 AndroidじゃなくてJavaの仕様 でよくよく調べると、 java.util.Formatter のドキュメントに Number Localization Algorithm なんてものが書か

    String.format("%d", i)で数字が出てくると思ってたら死んだ話 - Qiita
  • Java 8を関数型っぽく使うためのおまじないをF#でやってみた - ぐるぐる~

    Java 8を関数型っぽく使うためのおまじない - きしだのはてな Java 8を関数型っぽく使うためのおまじないをC#でやってみた - ぐるぐる~ Java も C# も大変ですね。 F# さんは、ラムダ式も関数型も最初から使えたので、似たようなことはすでにできます。 上記の記事のパクリなので、上記の記事をまずは読んでから読むことをおすすめします。 関数型(関数を表す型の方) F# では FSharpFunc という型があります。名前空間や型パラメータまで含めると、Microsoft.FSharp.Core.FSharpFunc<'T, 'U> です。 ただ、この型を直接使うことはありませんし、見ることもそうそうないです。 その代わりに、'T -> 'U という表記が使えます。「'T を受け取って 'U を返す関数」と読みます。 ちなみに、型パラメータの最初に「'」が付いているのが割と大

    Java 8を関数型っぽく使うためのおまじないをF#でやってみた - ぐるぐる~
  • ワイド文字列の罠

    C++の罠 wchar_tを使うときの罠 日語などのマルチバイト文字列を扱うソフトで、 正規表現などの文字列処理をもっと楽にやりたいという人は、 選択肢の一つとしてワイド文字列の使用を考えることでしょう。 最近では多くのライブラリがワイド文字列とシングルバイト文字列双方に対応し、 C言語も95年の改定でワイド文字列型wchar_tを導入し、 既存のchar型を使用する標準ライブラリはほぼ全てwchar_t版が用意されました。 無論C++も、98年にISOで標準化された際には、 文字列クラスはちゃんとstringとwstringの双方が用意されました。 ところが、実際にwchar_tを使用するとなると、様々な障壁が立ちはだかります。 ここでは、私が陥ったwchar_tに関する「罠」を紹介していきます。 罠その1:Win9xで使えない WinNT系列では、文字列を扱う全てのAPIにchar版

  • 1