タグ

C++に関するsh4のブックマーク (92)

  • 江添亮の詳説C++17

    はじめに 書は2017年に規格制定されたプログラミング言語C++の国際規格、ISO/IEC 14882:2017の新機能をほぼすべて解説している。 新しいC++17は不具合を修正し、プログラマーの日々のコーディングを楽にする新機能がいくつも追加された。その結果、C++の特徴であるパフォーマンスや静的型付けは損なうことなく、近年の動的な型の弱い言語に匹敵するほどの柔軟な記述を可能にしている。 人によっては、新機能を学ぶのは労多くして益少なしと考えるかもしれぬが、C++の新機能は現実の問題を解決するための便利な道具として追加されるもので、仮に機能を使わないとしても問題はなくならないため、便利な道具なく問題に対処しなければならぬ。また、C++の機能は一般的なプログラマーにとって自然だと感じるように設計されているため、利用は難しくない。もしC++が難しいと感じるのであれば、それはC++が解決すべ

    sh4
    sh4 2017/10/14
  • UEFIでうごくゲームを作ってみた〜2017年夏休みの自由研究〜 - Speaker Deck

    UEFIで動くノベルゲーを作ってみたので、その時の苦労とか知見とかまとめた自由研究発表です。 発表時のコードとかはこちら https://github.com/Narazaka/efigame

    UEFIでうごくゲームを作ってみた〜2017年夏休みの自由研究〜 - Speaker Deck
    sh4
    sh4 2017/09/21
  • C++のムーブと完全転送を知る - Fixstars Tech Blog /proc/cpuinfo

    社内勉強会、今期(と言ってももうあと1ヶ月もないですが)は、数理最適化勉強会と、Effective Modern C++輪読会をしています。この記事は、後者のEffective Modern C++輪読会で、『Effective Modern C++』5章の一部を輪読した時の資料を流用したものです。 C++11と言えば、昔のC++(03)から色々あって多くの機能が追加されとても便利になったバージョンです。さらに、C++14は11では間に合わなかった・忘れていた色々な便利なものを補填したもので、Effective Modern C++輪読会は、『Effective Modern C++』を教科書にしながらこのC++11/14について学ぶ会になっています。 時は既に2016年、gccもclangもMSVC++も概ねC++14が使えるようになっており、もはやC++14が使えないコンパイラにはC+

    C++のムーブと完全転送を知る - Fixstars Tech Blog /proc/cpuinfo
    sh4
    sh4 2017/06/19
  • GitHub - microsoft/cppwinrt: C++/WinRT

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - microsoft/cppwinrt: C++/WinRT
    sh4
    sh4 2016/11/03
  • Developer Assistant now supports C++ - Visual Studio Blog

    Get notified in your email when a new post is published to this blog Today we are happy to announce a major update to Developer Assistant! Developer Assistant now offers contextually aware web powered solutions for C++. Developer Assistant for Visual Studio is a productivity plugin that brings the combined power of Bing search capabilities and your development environment to solve your day-to-day

    Developer Assistant now supports C++ - Visual Studio Blog
    sh4
    sh4 2016/07/19
  • 本当は怖くないムーブセマンティクス - yohhoyの日記(別館)

    この記事はC++ Advent Calendar 2012の15日目にエントリしています。 内容はC++11「ムーブセマンティクス」の入門記事となっています。 もくじ ムーブセマンティクス再考 シンタックス vs. セマンティクス コピー vs. ムーブ ムーブのもつ2つの意味 C++11のムーブセマンティクス対応 auto_ptrからunique_ptrへ auto_ptrの暗い過去 unique_ptrへの移行 std::moveの役割 ムーブセマンティクスを使おう C++11標準ライブラリとムーブ ムーブ"後"の中身は? ムーブを利用して関数を書く (文のみ約9500字) まえがき To move or not to move: that is the question. ― Bjarne Stroustrup, 2010(改)*1 プログラミング言語C++の新しい国際標準規格*2

    本当は怖くないムーブセマンティクス - yohhoyの日記(別館)
    sh4
    sh4 2016/06/27
  • Visual C++ RTTI Inspection

    sh4
    sh4 2016/03/29
  • 関数へのポインタによるコールバックをインライン化する - Cry's Blog

    関数ポインタとコールバックとインライン化と C++,特にSTLではコールバックにファンクタを使用することが推奨されています.コールバックにファンクタを用いることの利点は大きく次の2つだと思われます. コールバックがインライン化される(ただしあくまで「かも知れない」) 各種のアダプタを適用できる 以下では主に前者について,関数ポインタを用いたコールバックをインライン化できないかを考えます. そもそも,インライン化したい関数というのは短い簡潔な関数のはずで,そういった関数のインライン化のためだけにstructごにょごにょ,operator()うにゃうにゃとやるというのは面倒だなぁ,関数ぺぺっと書きたいな,というモチベーションは十分にありえるかと思われます. さて,関数ポインタ経由での関数呼び出しは通常インライン化されないと考えられます.これは関数ポインタ経由の場合,実行時まで呼び出す関数のアド

    関数へのポインタによるコールバックをインライン化する - Cry's Blog
    sh4
    sh4 2016/03/24
  • Non-type template parametersの威力 - meryngii.neta

    数年ぶりにC++関連のまとまった記事を書こうという気になった。 最近の私はというと研究で毎日C++を書いていたので記事にできそうなネタはたくさんあるのだが、 それを公開するのは若干面倒なので出し渋っていたところがある。 加えて、C++嫌いな人々の根も葉もない批判によって、 毎日強烈なストレスを受けてきたのも制約の一つだったかもしれない。 まあここで愚痴愚痴言う気もあまりないのだが、 プログラマが落ち着いて物事を考えるには周りの環境はとても大事ってわけだ。 この記事では、直近1年ぐらいで私が重要だと感じるようになった、 Non-type template parameters (型ではないテンプレート引数)を使ったイディオムをいくつか紹介しようと思う。 面白いことに、今回紹介する抽象化手法には実行時オーバーヘッドが全く無いため、 上手く組み合わせることで安全で生産的かつ高速なコードを記述する

    Non-type template parametersの威力 - meryngii.neta
    sh4
    sh4 2016/03/24
  • 組込みでこそ C++ | tech - 氾濫原

    C++ はながいことわず嫌いだった。とにかく「難しい」というイメージだけ先行していた。 しかし、あくまで better C として使う限りでは難しくないし、可読性が上がるので、 C++ を使わない手はないという気持ちになった。 これまでの漠然とした C++ への不安 書いたコードと出てくるバイナリ C を書いていると、だいたいは書いたコードがそのままバイナリに翻訳されている感があり、安心感がある。struct はメモリ上の配置そのままだし、関数だって単に処理のまとまりに名前がついてて、呼び出しもとに自動的に戻ってくるラベルなだけだ。 C++ になるとオブジェクト指向に概念が入ってきて、これが実際どのようにコンパイルされるかに不安が出てくる。クラスはメモリ上でどう表現されているのか、メソッドディスパッチはどのように行われているか? もちろん知っている人にとっては簡単な話で class は単

  • The Last Line Effect - C++ Articles

    I have studied numbers of errors caused by using the Copy-Pate method and can assure you that programmers most often tend to make mistakes in the last fragment of a homogeneous code block. I have never seen this phenomenon described in books on programming, so I decided to write about it myself. I called it the "last line effect". Introduction My name is Andrey Karpov and I do an unusual job - I a

    sh4
    sh4 2016/03/08
  • cpprefjp - C++日本語リファレンス

    サイトcpprefjpは、プログラミング言語C++のリファレンスを提供するWebサイトです。 最新C++バージョンのリファレンスを提供していきます。 運営方針 リファレンスサイトは、C++言語の最新のリファレンスを常に提供し続けることを目標にしています。 各クラス、関数にはそれぞれ1つ以上のサンプルコードを付けていく方針です。 サイトでは、他サイトおよび規格書の直接的な翻訳ではなく、編集者の調査と考えに基づいた解説を提供していきます。 HTMLデータのダウンロード cpprefjp.github.io-master.zip ローカルで閲覧できるHTMLを用意しています。 スポンサーシップ cpprefjp - Open Collective このプロジェクトは、持続的な活動のため、ユーザーの方々からのご支援をお待ちしております。上記Open Collectiveのプロジェクトでスポン

  • 前置インクリメント vs 後置インクリメント | 闇夜のC++

    後置インクリメントにはひと目で遅くなりそうな処理が見て取れますね。 前置インクリメントがインクリメント処理後、単純に自身の参照を返すのに対し、後置インクリメントではインクリメント前に一時オブジェクトの生成、そしてインクリメント後にはその前に生成した一時オブジェクトを値で返しています。 前置と後置では、単純にオブジェクトをコピーして返す分、普通に考えたら後置の方が遅いよね。というのが従来の認識でした。 「C++ Coding Standards -101のルール、ガイドライン、ベストプラクティス」の中でも、特に後置インクリメントの必然性が無い時は迷わず前置インクリメントを使うことが推奨されてきました。 元の値を必要としないときは前置形式の演算子を使おう __C++ Coding Standards (p50) 新たな主張 「ゲームエンジン・アーキテクチャ第二版」の中の一節を紹介します。 しか

  • コピーコンストラクタ、代入演算子、デストラクタ - たーせる日記

    C++のためのAPIデザイン』のp.210には、こんな記述があります。 C++の初心者が陥りやすいのは、リソースを割り当てるクラスを作り、それに伴いデストラクタは用意したが、コピーコンストラクタと代入演算子を定義しないことだ。 というわけで、今日はコピーコンストラクタと代入演算子の定義がないと何が起こるのかについて実験してみます。 きっかけ 『ゲームプログラマになる前に覚えておきたい技術』のp.520には即死サンプルという不穏当なコードが掲載されています。 #include <vector> using namespace std; class A { public: A() { mX = new int(); } ~A() { delete mX; } int* mX; }; vector< A > gA; // グローバルにvector void add() { // 配列に足す関数

    コピーコンストラクタ、代入演算子、デストラクタ - たーせる日記
  • Win32 - Backtrace from C code

    I'm currently looking for a way to get backtrace information under Windows, from C code (no C++). I'm building a cross-platform C library, with reference-counting memory management. It also have an integrated memory debugger that provides informations about memory mistakes (XEOS C Foundation Library). When a fault occurs, the debugger is launched, providing information about the fault, and the mem

    Win32 - Backtrace from C code
    sh4
    sh4 2015/03/15
  • Loading...

    Loading...
  • C++/CLI: とある文字列の相互変換(コンバージョン)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    C++/CLI: とある文字列の相互変換(コンバージョン)
    sh4
    sh4 2015/02/23
  • C++ におけるマーシャリングの概要

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    C++ におけるマーシャリングの概要
    sh4
    sh4 2015/02/23
  • C++/CLIのデストラクタ/ファイナライザって難しい - .NET Claimwork 3.0

    OpenCVでカメラからのキャプチャを行うような事をC++/CLIでやろうとしています。で、まあリソース管理の為のコードを書くのは避けて通れない訳で、Disposeパターンに従って作ろうとしたら、public: virtual void Dispose(bool);が通らない......予約されていると? と思って見てみたら、こんなページがMSDN Libraryにありました。 Destructors and Finalizers in Visual C++ URIが日語用(ja-jp)なのに翻訳されていないというのはとりあえず置いておいて、C#に慣れた頭で読んでみると驚きの連続でした。ついでに眠いせいか難しい。一通り読んだだけでは収拾がつかないので、デストラクタ(Wikipedia)なども見つつ重要そうな所を僕なりにちょっとまとめてみます。 C++/CLIにおけるデストラクタとファイナ

    sh4
    sh4 2015/02/23
  • 本の虫: lambda 完全解説

    目的 この記事は、C++0xのlambdaを完全に解説せんとする目的を以て書かれた。サンプルコードは最小に留め、エラー処理等は省いた。この記事さえ読めば、今日からlambdaを恐れることなく使う物のC++0xプログラマになれるだろう。 lambdaとは何ぞや lambdaである。あるものは、lambda関数、あるいは無名関数という名称を使っている。いったいlambdaとは何なのか。 lambdaは関数である。また、特に名前はない。したがって、lambda関数、無名関数と呼ぶのは、間違ってはいない。しかしここでは、単にlambdaと呼ぶことにする。 lambdaを定義しよう lambdaは関数オブジェクトである。lambdaは関数オブジェクトである。これはとても大事なので二度書いた。lambdaは関数オブジェクト以外の何物でもない。ところが不思議なことに、皆lambdaが単なる関数オブジェ