C++とJSを跨ぐ クロスコンポーネント ガベージコレクタ 服部慶士(keishi@chromium.org) 2021-08-31 https://bit.ly/3DzLRBs 1
C++ の歩き方 | cppmap¶ 📢 CEDEC 2024 にて講演を行いました。発表資料を公開しています。 CEDEC 2024 | ゲーム開発者のための C++17~C++23, 近年の C++ 規格策定の動向 📢 CEDEC 2020 にて講演を行いました。発表資料を公開しています。 CEDEC 2020 | ゲーム開発者のための C++11~C++20, 将来の C++ の展望 📢 コンテンツ拡充のため【募集】タグのスレッドへ情報をお寄せください。 cppmap.docs | Issues 📢 本サイトの運営は、GitHub Sponsors によって支えられています。 GitHub Sponsors | Become a sponsor to Reputeless このサイトについて¶ C++17, C++20, C++23, C++26 に関する情報を調査・提供しま
はじめに 久しぶりに Aho氏, Sethi氏, Ullman氏の書いた Compilers(レッド・ドラゴン・ブック)という書籍を目にしたので、昔、コンパイラを作った時の事を思い出しながらコンパイラについてまとめてみました。 Translator (翻訳) Translatorとは、一つのプログラミング言語(Source Language: 原始言語)で書かれたプログラムを入力として取り、別の言語(Object Language or Target Language: 目的言語)のプログラムとしてつくり出すプログラムです。 原始言語が FORTRAN, C, Pascal などの高水準言語で、目的言語がアセンブリ言語や機械語といったような低水準言語である時、そのような Translator をコンパイラ(Compiler) と呼びます。また、原始言語がアセンブリ言語で目的言語が機械語であ
私はC++歴3年の学生趣味プログラマーです。 「C++はなぜヘッダと実装を分けなくてはならないのか/そもそも本当に分けなければならないのか」という質問です。 C++といえば、ヘッダー部と実装部を.hファイルと.cppファイルに分けることが一般的とされている言語ですが、 これは同じオブジェクト指向言語のC#やJavaにはない特徴です。 そのせいでC++使いたちは今日もcppファイルとhファイルを行ったり来たりしながらコーディングする羽目になっています。(そしてVS使いはF12とCtrl+-を得意気に連打しています。) 私にとってもそれが当たり前になって久しいですが、 時々C++を学び始めたばかりの後輩から「なぜヘッダファイルに実装を書いてはならないのか」「なぜC++は二度も同じコードを書くことを強いるのか」と質問を受けます。 私はそのたびに「実装の隠蔽化」とか「循環参照の危険が云々」とか「そ
C++標準ライブラリ<random>で提供される分布生成器(distribution)は、具体的なアルゴリズムまで規定しないため処理系毎に異なる乱数列が得られる。乱数生成エンジン(engine)のアルゴリズム/パラメータが言語仕様で定義されるのとは対照的(→id:yohhoy:20130719)。 #include <random> std::mt19937 rng; // engine std::normal_distribution<> dist; // distribution // rng()で生成される値は全処理系で同一 // dist(rng)で生成される値は処理系依存 複数の処理系間で同一乱数列を得る必要があるときは、Boost.Randomライブラリなどを利用すること。正直、C++標準でポータブルな分布生成器まで提供した方が良かったのでは… 2016-02-25追記:Boo
C++11の文法と機能(C++11: Syntax and Feature) Copyright (C) 2013 江添亮. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GN
概要 C++11 の正規表現ライブラリの仕様の曖昧な部分を指摘し、現実の実装のぶれを例示します。 Multiline 定義 ECMA-262 では、Multiline について以下のような定義が存在します。 §15.10.2.6 (ECMA-262) Multiline が true の場合 ^ や $ は改行文字の直後や直前にもそれぞれマッチし、 false ならばマッチしない。(文字列の先頭と最後にはそれぞれ常にマッチする) §15.10.4.1, §15.10.7.4 (ECMA-262) 新しく作られた正規表現オブジェクトのフラグに "m" が指定されている場合、 multiline プロパティは true, そうでなければ false。 (つまり、デフォルトでは false) ところが C++11 n3485 には Multiline についての言及はありません。 したがって E
プログラミング言語C++における特殊メンバ関数(special member functions)のユーザ宣言/コンパイラ暗黙宣言に関するメモ。本記事の内容はACCU 2014でのHoward Hinnant氏プレゼン(PDF) "Everything You Ever Wanted To Know About Move Semantics (and then some)" に基づく。 下記6つが特殊メンバ関数として扱われる。これらのメンバ関数は、“宣言なし”、“暗黙の宣言(defaulted/deleted)”、“ユーザ宣言(=default/=delete/ユーザ定義)”のいずれかとなる。 デフォルト・コンストラクタ X() デストラクタ ~X() コピー・コンストラクタ X(const X&) コピー代入演算子 X& operator=(const X&) ムーブ・コンストラクタ X
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く