タグ

ブックマーク / gintenlabo.hatenablog.com (3)

  • 野良C++erの雑記帳

    Object.entries() - JavaScript | MDN Object.entries は、オブジェクトに含まれる key と value の組み合わせを配列にして返してくれる関数で、 Javascript でコードを書いてるとお世話になることも多いと思います。 しかし、これを Typescript で使おうとすると、型が微妙になってしまうという問題点があります: type Hoge = { a: string; b: number; }; function f(x: Hoge) { const entries = Object.entries(x); // entries の型は [string, string | number][] for (const [key, value] of entries) { // 処理 } } これを解決するために、以下のような手法を使う

    野良C++erの雑記帳
    memigu
    memigu 2011/01/08
  • C++0x 標準ライブラリ完全解説 〜 No.01 namespace rel_ops, <utility> - 銀天随筆集

    該当規格: 20.3.1 Operators [operators], N3225 http://sites.google.com/site/cpprefjp/reference/utility/rel_ops さて、それでは早速、具体的なライブラリに移っていこうと思います。 とはいえ、初回から飛ばすのもアレなので、まずは軽いものを、 というわけで、 の rel_ops を紹介したいと思います。 これは比較演算子の多重定義を助けるためのヘルパ関数群で、 で唯一、 C++98/03 から全く変化していないライブラリです。 定義 namespace std { namespace rel_ops { template <class T> bool operator!=( const T& x, const T& y ) { return !( x == y ); } template <cla

    C++0x 標準ライブラリ完全解説 〜 No.01 namespace rel_ops, <utility> - 銀天随筆集
    memigu
    memigu 2011/01/08
  • C++0x 標準ライブラリ完全解説 〜 No.00 Introduction - 野良C++erの雑記帳

    はじめに 現在 FDIS 制定に向けて着々と作業が進められてる C++ の次世代規格、通称 C++0x では、 今までの C++ で使いにくかった部分を、より便利に扱えるよう、様々な改良が行われています。 この改良は、言語コア部分の改良のみにとどまるものでは当然 なく、 標準ライブラリも、今までよりずっと充実したものになるよう、大幅に改良されています。 しかし、そんな C++0x のライブラリを解説した記事は、 C++0x になって新しく増えた部分に対する紹介記事こそありますが、 現行規格である C++98/03 の部分も含めた上で、ライブラリの全体にわたって そこそこ詳細に説明するようなものは、少なくとも日語は、今まで存在しませんでした。 勿論、今までは、(そして今でも、) C++0x はあくまで草案の状態であり、 C++0x に興味のある人は、現行規格をある程度 把握した上で C++

    C++0x 標準ライブラリ完全解説 〜 No.00 Introduction - 野良C++erの雑記帳
    memigu
    memigu 2011/01/08
  • 1