タグ

c++に関するtets001のブックマーク (10)

  • 江添亮のC++入門

    書はプログラミングの経験はあるがC++は知らない読者を対象にしたC++を学ぶためのである。書はすでに学んだことのみを使って次の知識を説明する手法で書かれた。C++コンパイラーをC++で書く場合、C++コンパイラーのソースコードをコンパイルする最初のC++コンパイラーをどうするかというブートストラップ問題がある。書はいわばC++における知識のブートストラップを目指しただ。これにより読者はを先頭から読んでいけば、まだ学んでいない概念が突如として無説明のまま使われて混乱することなく読み進むことができるだろう。 C++知識のブートストラップを意識した入門書の執筆はなかなかに難しかった。ある機能Xを教えたいが、そのためには機能Yを知っていなければならず、機能Yを理解するためには機能Zの理解が必要といった具合に、C++の機能の依存関係の解決をしなければならなかったからだ。著者自身も苦し

    tets001
    tets001 2019/09/20
  • C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? C++ Advent Calendar 2018 この記事はC++ Advent Calendar 2018 15日目の記事です。 14日目: VTKライブラリ 16日目: C++のエラー処理との付き合い方 当初見積もりよりも大幅に長い記事となり、投稿したのは12/22で1週間遅刻です。すみません。 お知らせ cpprefjpにchar8_t型追加について解説を書きました。ぎゅぎゅっとコンパクトに、また査読を受けて中立的な表現で書いていますので、よければどうぞ。 UTF-8エンコーディングされた文字の型としてchar8_tを追加 - c

    C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita
  • C++の話(本当にあった怖い話)

    The document discusses C++ and its history and features. It describes C++ as an extension of C with object-oriented features like classes. It provides information on the creator of C++, Bjarne Stroustrup, and the evolution of C++ since its introduction as a way to add object-oriented programming to C. It also includes sample C++ code demonstrating the use of arrays and includes from the Boost libr

    C++の話(本当にあった怖い話)
  • Visual C++ 2010に追加されたSTLアルゴリズム

    この記事が公開される頃にはVisual Studio 2010のパッケージ販売が始まっているでしょうか。MSDN Subscriptionでは先行提供されていますし、各言語のExpress版が公開されていますから、初物(?)の好きなミナサマは早速遊んでいらっしゃることと思います。 C++屋の僕にとって一番嬉しかったのはVisual C++ 2010(vc10)でC++0xに(完全ではないにせよ)準拠してくれたこと。特にlambda式にはドキドキさせられました。lambda式のサポートにより、より明快でコンパクトな表現が可能になりました。正規表現(regex)や配列(array)、賢いポインタ(shared_ptr/weak_ptr)などなど、サポートが待ち望まれていたクラス群が追加されています。稿ではvc10で新たに追加されたSTLアルゴリズムを一気に紹介します。 以降、プロトタイプと説

    Visual C++ 2010に追加されたSTLアルゴリズム
  • JavaとC++のパフォーマンスを比較する

    はじめに Javaプログラミング言語の初期のころから、Javaはインタープリタ言語なのでパフォーマンスの点でCやC++に劣る、と主張している人たちがいました。もちろん、C++の信奉者たちは、そもそもJavaを「真の」言語だと思っていないでしょうし、Javaの連中はC++プログラマに向かっていつも「一度書けば、どこでも実行できる」と唱えています。 まず重要なことから取り上げましょう。Javaは基的な整数演算をどれほどうまくやってのけるでしょうか。私が誰かに「2×3は?」と尋ねたら、おそらくすぐに答が返ってくることでしょう。では、相手がプログラムならどうなるでしょうか。これを調べるために、基的なテストを行ってみましょう。テストの内容は次のとおりです。 最初にX個のランダムな整数を生成する それらの数に、2からYまでのすべての数を掛ける 全体集合の計算に要する時間を計算する 乱数の生成に要す

    JavaとC++のパフォーマンスを比較する
  • スレッドセーフとインテルTBBのコンテナ

    はじめに この連載では、並列処理を高度に抽象化したインテルTBBを通じて、並列化の考え方を取得することを目的としています。今後、並列化は当たり前のものとなり、さまざまな形でサポートされるようになります。並列化処理の根底に流れる考え方を身につければ、その変化に対応できます。 今回はスレッドセーフおよびインテルTBBに用意されている4個のコンテナの使い方と注意するべき点について解説します。この連載のサンプルはあくまでもインテルTBBの使い方を説明するものであり、実務を特別に意識したものではありません。その点をご理解ください。 対象読者 筆者が想定している読者はC++の基的文法を理解し、並列化プログラミングに興味を持っている方です。高度なC++テクニックを極力さけ、基的な文法さえ分かれば読めるように極力注意しますので、並列化に興味を持っている方はぜひこの連載に目を通してください。 必要な環境

    スレッドセーフとインテルTBBのコンテナ
  • OpenMPの実行時ライブラリと並列ループ

    はじめに この連載は、OpenMPを通じて並列処理の考え方をお伝えすることを目的としています。マルチコアCPUが既に普及していますので、今後は並列プログラミングが一般的なものとなり、さまざまな技術が登場するでしょう。その時並列プログラミングの根底に流れる考え方を身に付けられていれば、比較的容易に新技術も習得することができるでしょう。 今回は並列プログラミングに役立つ実行時ライブラリの関数と並列ループについて解説します。この連載で解説に使用するサンプルコードはあくまでもOpenMPの基礎を理解するためのものであり、実務でOpenMPを使用する際にはよく理解してから用途に適したプログラミングを行ってください。 対象読者 筆者が想定している読者はCの基的文法をマスターし、並列化プログラミングに興味を持っている方です。凝ったテクニックを極力さけ、基的な文法さえ分かれば読めるように注意しますので

    OpenMPの実行時ライブラリと並列ループ
  • OpenMPの基礎構文

    はじめに 昨今マルチコアCPUは一般化し、並列化処理の重要度がどんどん高まってきました。この流れはもう変わらないでしょう。ですから、我々開発者にとって並列処理の知識は絶対に必要なものです。とはいえ、日々の業務をこなしつつ資料が少ない並列化処理を身につけることは大変です。 そこで今回筆者は、並列化処理を実現するOpenMPの入門記事を書くことにしました。OpenMPを選択した理由は、一番効率が求められているのはC/C++プログラマーだと考えたからです。C/C++プログラマーの方々が並列処理を習得するお手伝いができれば幸いです。 なお、この連載で解説に使用するサンプルコードはあくまでもOpenMPの基礎を理解するための便宜的なものであり、実務でOpenMPを使用する際にはよく理解してから用途に適したプログラミングを行ってください。 対象読者 筆者が想定している読者はCの基的文法をマスターし、

    OpenMPの基礎構文
  • 思い出はC++と共に

    1960 年生まれ,独身フリー・プログラマの生態とは? 日経ソフトウエアの人気連載「フリー・プログラマの華麗な生活」からより抜きの記事をお送りします。2001年上旬の連載開始当初から,現在に至るまでの生活を振り返って,順次公開していく予定です。プログラミングに興味がある人もない人も,フリー・プログラマを目指している人もそうでない人も,“華麗”とはほど遠い,フリー・プログラマの生活をちょっと覗いてみませんか。 ※ 記事は執筆時の情報に基づいており,現在では異なる場合があります。 私がC言語と出会ってから,もう25年近くたつ。当時は大学の計算機センターでFORTRANやPL/I,Lispなどで遊んでいた。PascalやパソコンBASICも手近にあったが,やはり面白いのはLispであった。 その後,C言語の紹介を雑誌で読んだり,研究室にあるPDP-11にUNIXがきたという噂(うわさ)を聞いたり

    思い出はC++と共に
  • インテル スレッディング・ビルディング・ブロックの概要

    はじめに 情報産業の進歩は目覚しいものがあります。特にCPUの進化は著しく、ムーアの法則が指し示すとおりに急激に進化してきました。しかし2006年頃、ついにシングルプロセッサでの性能向上に限界が見え、マルチコア時代に突入しました。筆者が聞くところによると、これからはコア数を上げることによりムーアの法則が示す性能向上がもたらされることになるそうです。 むろん進化はハードウェアだけに留まりません。マルチコアプロセッサを有効利用するために並列プログラミングに関するソフトウェア技術も同様に進化しました。昨今では、並列指向の関数型プログラミング言語Erlang、並列プログラミングを実現するライブラリや技術、.NET 4.0で並列化に関する機能が付加されるなど、並列化に関する話題を見聞きする機会が多くなりました。 しかし、多くの開発者達は多忙です。音を言えば、並列プログラミングは苦痛だと言う人もいる

    インテル スレッディング・ビルディング・ブロックの概要
  • 1