タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

ProgrammingとC++とdeferredに関するagwのブックマーク (154)

  • C++ Development in Xcode

    C++ in Xcode Tired of Vim? Here's tips for C++ development in Xcode. Tuned to the needs of many classes at UM. Contents: Creating the Project Command Line Arguments Input Redirection - stdin Input and Output files - fstream Debugging Source Control Testing on CAEN Creating the Project After opening Xcode, go to File->New->Project In the OS X section, select 'Application' and then select the 'Comma

    C++ Development in Xcode
  • XOR swap今昔物語: sequence pointからsequenced-beforeへの変遷 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    XOR swap今昔物語: sequence pointからsequenced-beforeへの変遷 - Qiita
  • Introduction · A Guide to Porting C and C++ code to Rust

    A Guide to Porting C/C++ to Rust This book is for people familiar with C or C++ who are thinking of using Rust. Before we go into what Rust is or why it might be preferable to C/C++ in some cases, let's think of software that is mission critical and must not or should not fail. Operating system services and daemons Internet of things devices Industrial control software Medical devices - MRI, ultra

  • shared_ptrの使い方を知りたかったからいろいろ試してみた - uhiaha888’s diary

    タイトルのとおりです。 基的な使用方法 まず基的な使い方。 #include "stdafx.h" #include <memory> #include <iostream> class Hoge { public: Hoge(){} ~Hoge(){ std::cout << "Hogeのデストラクタだよ" << std::endl; } int number_; }; int _tmain(int argc, _TCHAR* argv[]) { { std::shared_ptr<Hoge> hoge1(new Hoge); // 初期化 hoge1->number_ = 30; { std::shared_ptr<Hoge> hoge2 = hoge1; std::cout << "hoge1->number_ : " << hoge1->number_ << std::endl

    shared_ptrの使い方を知りたかったからいろいろ試してみた - uhiaha888’s diary
  • よわい人でもconstexprで配列の計算がしたい! - Qiita

  • 久々なのでC++17の情報を集めてみる - Qiita

    なんか超テキトーに書いて投稿した初稿がそこそこStockされてて、もっとちゃんと書けやゴルァって怒られそうな気がするので更新します。 オヒサシブリデス。 最近C++の最新情報を集めるのもサボってまして、の虫で最新の論文を紹介している記事も流し読み状態。これではいけない。今や2016年、順当に行けばC++1zがC++17になる日も近いではないか。 というわけで、まずはStandard C++の公式サイトを見てみる。conceptはよ。networkingはよ。 Current Status - Stancard C++ Recent milestones: C++17 nearly feature-complete, second round of TSes now under development ふむふむ。そろそろFCで、TSが現在策定中であると。なるほどなるほど。で、何が標準入りす

    久々なのでC++17の情報を集めてみる - Qiita
  • C++11スマートポインタで避けるべき過ち Top10 | POSTD

    (注:2017/10/25、いただいたフィードバックを元に翻訳を修正いたしました。修正内容については、 こちら を参照ください。) 私は新しいC++11のスマートポインタをとても気に入っています。自分でメモリを管理するのが嫌だと感じる多くの仲間たちにとって、これはいろいろな面で天の助けでした。私の場合、このおかげで新人にC++を教えるのがずっと楽になりました。 しかし、C++11のスマートポインタを幅広く使っていた2年ちょっとの間で、使い方を誤ると、プログラムの効率が落ちたりクラッシュして壊れたりするという事態に何度も遭遇しました。参照用に、以下に例を載せました。 まずはこれらの”過ち”を、簡単なAircraftクラスを例に取って見てみましょう。 class Aircraft { private: string m_model; public: int m_flyCount; weak_p

    C++11スマートポインタで避けるべき過ち Top10 | POSTD
  • Final features of C++17

    published at 30.06.2016 14:32 by Jens Weller Save to Instapaper Pocket With last weeks C++ committee meeting in Oulu, C++17 is feature complete and on its way to become an international standard. After the last meeting in Jacksonville I had little hope to see big surprises, but Oulu managed to add a few important and interesting features to the new standard. There is a very good overview on Reddit

  • シンプルな配列クラスを使って「右辺値参照」と「ムーブセマンティクス」を知る - Qiita

    C++11 の新しい機能に「右辺値参照」と「ムーブセマンティクス」があります。 ググればこれらに関して解説されてるサイトが結構ありますが、一般的には理解しづらいものとして扱われてるみたいです。 かくいう自分もよくわかりませんでした……。 ですので、今回は至ってシンプルな配列クラスを使って、これらが何を意味するのかを知ろうかと思います。 従来は「コピー」 まずは、「右辺値参照」と「ムーブセマンティクス」を使わないコードを見てみます。 # include <iostream> using namespace std; struct Array { typedef int ValueType; ValueType *p; int length; // コンストラクタ Array(int _length) : p(new ValueType[_length]) , length(_length)

    シンプルな配列クラスを使って「右辺値参照」と「ムーブセマンティクス」を知る - Qiita
  • n2930: Range-based for loopについて

    n2930: Range-Based For Loop Wording (Without Concepts) 今回、フランクフルト会議でconceptが廃止されたことにより、conceptに依存している機能は、すべてconceptに依存しないように変更しなければならなくなった。Range-based forは、conceptあってこその機能なのだ。concept mapがあるからこそ、既存の型にも、容易にRange-based forを適用できるようになるはずだったのだ。それが、conceptがない今、どうするのか。 答え:ADLを使う。 Range-based forは以下のような構文になっている。 for ( for-range-declaration : expression ) statement これは、コンパイラによって、以下のように変換される。 { auto && __ran

  • 2016年、C言語はどう書くべきか (前編) | POSTD

    (訳注:2016/3/2、いただいた翻訳フィードバックをもとに記事を修正いたしました。) (訳注:著者のMattより、「文中で明言はしていないが、この記事の内容はx86-64 Unix/Linux/POSIXでアプリケーションをプログラミングする場合にフォーカスしている。他のプログラミング領域では、対象とするシステムに応じた(例: 8-bitの組み込みシステム、10年前のコンパイラ、多くの異なるCPUアーキテクチャで動く必要のあるアプリケーション、Win/Linuxでのビルド互換性など)特有のアドバイスが必要」との補足を頂いております。) 以下の文章は2015年の始めに書いたドラフトで、今まで公開していませんでした。私のドラフト用フォルダの中で誰の目も引かなかったため、大部分が書いた時のままです。公開するにあたり、単純に2015年を2016年に変更しました。 必要な修正、改善、苦情があり

    2016年、C言語はどう書くべきか (前編) | POSTD
  • C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第1回 : 整数型の怪と対策の不足) - Qiita

    はじめに 整数型の取り扱い (表現可能な値の範囲を超える "整数オーバーフロー" を防ぐなど) は、セキュリティ上の問題を避けるために、そうでなくとも予期しないバグを避けるために (頻繁に!) 注意しなければならないことだと言えるでしょう。 整数オーバーフローは、特に C/C++ においては深刻な脆弱性の原因になりがちです。昨年界隈を騒がせた Android の Stagefright としてくくられている複数の脆弱性のうち大部分は、この整数オーバーフローが原因となっています。 ただ、C++ における整数型は、実に奇妙です。その奇妙さの結果、C++ において整数オーバーフローを防ぐことは非常に難しいことが……あまり知られていません。というわけで、数回に分けて C++ における整数型 (特に符号付き整数型) の仕様とその奇妙なところ、何故整数オーバーフローチェックが難しいのか、それでもどうや

    C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第1回 : 整数型の怪と対策の不足) - Qiita
  • std::unordered_map のキーに独自の型を使用する - Qiita

    C++11 で追加された std::unordered_map は、連想配列を扱うことができる。 以前からある std::map では、キーとして扱えることができるのは 順序関係が定義されたオブジェクトのみである。一方、 std::unordered_map では順序関係が定義されていキーを使うことができ、純粋な連想配列(ハッシュテーブル)として使うことができる。 ただし、 std::unordered_map のキーはハッシュ値へ変換できる必要がある。多くの標準型のように std::hash() でハッシュ値への変換が定義されている型はそのままキーに使うことができるが、自分で定義した型など変換が定義されていない型をキーとして使用する場合はハッシュ計算を行う関数を自分で用意する必要がある。 このハッシュ関数を定義するには、 std::hash() を特殊化する方法と、関数オブジェクトを作成

    std::unordered_map のキーに独自の型を使用する - Qiita
  • C++11のスレッド、アフィニティ、ハイパースレッディング | POSTD

    背景と導入 何十年もの間、CやC++の標準規格は、マルチスレッディングや並行処理を「その標準の範囲を超えたもの」として扱ってきました。標準規格の目的である”抽象機械”の力が及ばない、”対象依存”という影の世界においてです。メーリングリストやニュースグループの質問には並行処理に関するものが山ほど寄せられましたが、それらにすぐに突き返された回答は「C++はスレッドには関知しません」という何とも冷淡なものでした。この件によって当時のことを思い出す人々は、今後も絶えないでしょう。 しかしC++11の登場で、そんな状況に終止符が打たれたのです。C++標準化委員会は、時代の流れに乗らないと、この先C言語が取り残されてしまうと悟ったのでしょう。彼らはスレッドや同期メカニズム、アトミック操作、メモリモデルなどの存在に、ようやく気付いたわけです。そして標準規格として、C++コンパイラやライブラリのベンダーに

    C++11のスレッド、アフィニティ、ハイパースレッディング | POSTD
  • やねうらおが本当に必要だったもの

    range-based forはコンピューター将棋で使えるのか? | やねうら王 公式サイト やねうらおが、range-based forが使えないとこぼしている。しかしその利用例をみるに、そもそもrange-based forを使うべきではない。 range-based forは、イテレーターというコンセプト(まだコンセプト機能はC++にないが)に従っている。イテレーターはポインター操作をモデルとしている。 イテレーターは要素群の中のある要素を指していて、operator *で要素を参照できる。 イテレーターの指す要素は、operator ++で次の要素に移動できる。 イテレーターはhalf-openとなっていて、要素群の最後の要素のひとつ次の、何も指していない状態のイテレーターが存在する。これを番兵のように使い要素の端に到達したことを判定する 一方、やねうらおのコードは、来イテレータ

  • C++でCプリプロセッサを作ったり速くしたりしたお話

    1. C プリプロセッサを使ってみよう 2. C プリプロセッサを作った話 3. C プリプロセッサを高速化した話

    C++でCプリプロセッサを作ったり速くしたりしたお話
  • C++ 多重集合 std::multiset 入門

    C++ std::multiset とは C++ の std::multiset とは順序付けされたデータを複数保持することができる順序付多重集合のコンテナクラスだぞ。 データを順不同に順序付多重集合に追加すると、その値をキーにし自動的にソートして内部に格納してくれるぞ。 つまり、要素が常にソートされた状態の配列のようなものだ。 内部的にはツリーを使用するので、ix 番目の要素を高速に取り出すことは出来ないけどね。 set とは違い、重複するデータを保持することができるぞ。これを「多重」と呼ぶ。 multiset はデータの追加・削除・検索の処理速度が O(log N) と高速だ。 vector に入っているデータを単純に検索すると処理速度は O(N) だが、あらかじめ O(N * log N) の時間をかけてデータをソートし、 lower_bound 等の二分探索を行うと O(log N

    C++ 多重集合 std::multiset 入門
  • [C++] STLの型の使い分け - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 先日Ohotech 特盛 #10で話した、「C++のSTLのコンテナ型を概観する」の内容を単独記事としてまとめたものです。 追記(2019.02.02) 記事から大幅加筆し動画講座化したものを公開しました。 C++ STLのコンテナ型を動作効率を考えて使いこなす! | Udemy 有料ですが、一部の節は無料で視聴可能です。 2月いっぱいまでは、上記のリンクから辿っていただけると有効のキャンペーン価格になります。なお、もしキャンペーン価格(¥3600→¥1200)が表示されていない場合はお問い合わせください(offkaiあっとまーくhh

    [C++] STLの型の使い分け - Qiita
  • 「never say new, never say delete」 ~C++11のunique_ptrのおはなし

    目下手を入れているコードも相当古く、ビギナさんにオブジェクト指向を教えるべく継承と多態を"わざと"多用したサンプルです。C++での動的束縛(dynamic-binding)を説明するため、あちこちにポインタが現れあちこちでnew/deleteしています。多態を使いまくるコードでポインタの利用が増えてしまうのはある程度仕方のないことなのですが、決してnew/deleteしまくりたいわけじゃありません。ガベージ・コレクションをサポートしたC#/Javaの類ならnewしっぱなしで構わんけれど、C++ではnewしたものは必ず/明示的に/ただ一度だけ/確実にdeleteしてやらにゃなりません。ヒトは間違う生きもの、忘れる生きものなんだから、できることならnew/deleteしたくない。特にdeleteはやらずに済むならそれに越したことはないわけで...マクラが長くなりました、unique_ptrのお

    「never say new, never say delete」 ~C++11のunique_ptrのおはなし
  • unique_ptr で今風な C++ コードを書こう!! - @nojima's blog

    はじめに お久しぶりです。KMC OB の id:nojima です。 この記事は KMC Advent Calendar 2014 の10日目の記事です。 昨日は id:murata さんの「受験生応援!Javascriptでひねくれ数列」 でした。 今日は C++ の unique_ptr の話です。 (最初は rvalue について書こうと思っていたのですが、書いてみると unique_ptr だらけになったのでタイトルを変えました。なので、KMC Advent Calendar 2014 に書いてあるタイトルとはい違っています。すみません) 個人的には C++03 ではなく C++11 を使う最大の理由は unique_ptr の存在だと思っています。 例外発生時にももれなく delete してくれる。 生ポインタとパフォーマンスが同じ。(最適化されている場合) 所有権を型として

    unique_ptr で今風な C++ コードを書こう!! - @nojima's blog