Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

c++に関するWatsonのブックマーク (324)

  • C++14 Overview

    5. 実行時サイズの配列 void f(int n) { int ar[n]; // 要素数nの配列ar } 配列の要素数に、実行時の値を指定できるようにするとい うもの。 C99とは「sizeofがとれない」等、細かい部分で非互換。 規定はされないが、スタックからメモリアロケートされる 可能性がある。 6. 通常の関数の戻り値型推論 auto f(); // 関数f()の宣言。この時点では戻り値の方は「不明」。 auto f() { return 3; } // 関数f()の定義。戻り値の型はint。 int x = f(); // x == 3 ラムダ式と同様に、通常の関数でもreturn文から戻り値の 型を推論できるようにしよう、というもの。 7. ジェネリックラムダ vector<X> v = {3, 1, 4}; sort(v.begin(), v.end(), [](const

    C++14 Overview
    Watson
    Watson 2013/06/05
  • C++14にやってくる見た目に分かりやすい新機能

    C++14のCDも公開され、いよいよC++14も形になってきた。いま書いているC++11だが、C++14はGCCとClangといった二大C++コンパイラーで数年のうちに実装されるだろうから、もうすぐ実際に使うことができる。 今回は、詳細な説明は省いて、サンプルコードで新機能を語りたいと思う。以下の新機能は、すでにドラフト入りしており、正式採用はまず間違いない機能である。ちなみに、コンパイルしていないので正しいかどうか検証していない。 2進数リテラル int bi = 0b11110000 ; // 10進数リテラルでは240 2進数の記述が直感的になる。 自動ストレージ上に確保される動的な長さの配列 void f( std::size_t size ) { int buf[size] ; // OK } もちろん、クラスの配列も可能だし、コンストラクターやデストラクターも正しく呼ばれる

    Watson
    Watson 2013/05/28
  • C++14 のラムダ式 完全解説 前編 - 野良C++erの雑記帳

    C++14 の Committee Draft が公開された. C++14 は基的には C++11 のマイナーバージョンアップであるが,バグフィックスのみを行っている訳ではなく, C++11 の時点で微妙に使いにくかった機能,特にラムダ式については,大きな機能追加が行われている. そこで, blog では,このエントリから数回に分けて, C++14 のラムダ式について説明してみることにする. 拙い文章になるかとは思うが,読者の理解の助けになれば幸いである. なお,これらの記事を書くにあたって,読者に対して C++11 のラムダ式に対する知識を要求しないように心がけたが, もしかしたら,説明不十分であり,分かりにくい部分があるかもしれない. そのような場合には, の虫: lambda 完全解説 等, C++11 のラムダについて書かれた記事は多いので, それらの記事を読んでみることを

    C++14 のラムダ式 完全解説 前編 - 野良C++erの雑記帳
    Watson
    Watson 2013/05/17
  • C++14 2進数リテラル - Faith and Brave - C++で遊ぼう

    N3472 Binary Literals in the C++ Core Language C++14から、2進数リテラルが言語組み込みで導入されることが決まりました。 0bもしくは0Bというプレフィックスを付けたあとに、0か1のシーケンスを記述します。 int x = 0b1100; // x == 12 提案されている仕様を見る限りでは、0bと0Bに違いはないようです。 2進数リテラルはまだコア言語側だけが決まった段階で、IOStreamライブラリでのフォーマットについてはまだ何も決まっていないようです。 GCCでは、4.3から言語拡張としてすでに実装されていて、4.9からC++14の機能として導入される予定です。 Clangでも3.2段階ですでに実装されているようです(対応状況にYesとしか書いてないので、どこから対応してるかは不明)。

    C++14 2進数リテラル - Faith and Brave - C++で遊ぼう
  • Bristol会議でC++14ドラフト入りが決まった提案一覧

    C++14が来年に迫っている。先日行われたBristol会議の投票により、C++14のドラフトに正式に入ることが決まった提案の一覧を紹介する。ここで紹介されている提案は、すべてC++14入りが決定している。この先も細かい変更があるかもしれないが、基的には変わらない。来年2014年に正式に発行される予定のC++14におそらく入る。 また、論文はすでに公開されている論文を、議論の結果修正したものなので、すでにこのブログでは全て解説しているはずだ。以下から探してくれたまえ。 の虫: C++WG 2013-03-pre-Bristol mailingの簡易レビュー の虫: C++ 2013-01 mailingの簡易レビュー の虫: 2012-11 post-Portland mailingの簡易レビュー の虫: 2012-09 pre-Portland mailingのあまり簡易ではな

    Watson
    Watson 2013/04/24
  • ClangがC++11を完全実装! 繰り返す、C++11を完全実装

    [Phoronix] LLVM's Clang Compiler Is Now C++11 Feature Complete C++11 support is now feature-complete. · e6e68b5 · llvm-mirror/clang · GitHub 3時間前のコミットにより、Clangは晴れてC++11規格を完全に実装した。その通り、完全にすべて実装した。 コミットは、Inheriting Constructorsとthread_localの機能を有効にする変更だ。 もちろん、まだ実装にバグは残っているだろうし、規格上のバグもあるので、開発に終わりはない。ただし、今日は記念すべき日である。 static_puts said... そうすると、ますますC++11の重要性が高まってきますね! 「寄付のお願い」の方にも書かせていただいたのですが、書籍の執筆への寄

  • C++をC++11スタイルへ変換するツール「LLVM C++ Migrator」

    LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. LLVMプロジェクトのブログに、「C++11 Migrator」と呼ばれる現在開発が進められている新機能の紹介記事が掲載された。C++11 Migratorは既存のC++のソースコードをC++11の機能を使ったソースコードへ変換するためのツール。2012年12月に提案されたプロジェクトで、現在開発段階にある。 C++11 Migratorの目的はソースコードをC++11の新機能を使った記述へ変更することで、C++ソースコードのメンテナンス性の引き上げ、読みやすさの向上、実行時のパフォーマンスの引き上げ、コンパイル時間の短縮、などを実現する

  • LLVMによる自動C++11移行ツール

    LLVM Project Blog: Status of the C++11 Migrator 先月のRSSフィードに一瞬だけ現れたのだが、すぐ消えてしまった記事が復活した。 cpp11-migrateは、LLVMのツールに含まれる、既存のコードをC++11に変換する移行ツールである。 現在のところ、四種類の変換が可能だ。 STLコンテナーや配列の要素をループでなめるコードをRange-based forに変換する。 こんないけてないコードが、 std::vector<int> myVec; for (std::vector<int>::iterator I = myVec.begin(), E = myVec.end(); I != E; ++I) llvm::outs() << *I; こんなに格好良くなる。 std::vector<int> myVec; for (auto & el

  • C++14の新機能

    Meeting C++に、次期C++に要求されている機能や仕様の変更を紹介する記事「A look at C++14: Papers Part I」が掲載された。提案されている機能や変更から主なものを紹介することで、次期C++に関する状況がどのようなものかを伝えるとしている。紹介されている機能や変更を簡単に取り上げると次のとおり。 ポリモーフィックアロケータの導入 初期化処理の拡張 boost::optionalなどの型をstd::optionalなどの標準機能として取り込み OpenMPが実現している機能を標準機能として取り込み UDL (User Defined Literals)を標準ライブラリとして取り込み ダイナミック配列を標準ライブラリとして取り込み スレッドセーフな並列待ち行列を標準ライブラリとして取り込み C++にシェルのパイプラインと同様の機能を導入 ストリームに対するmu

    Watson
    Watson 2013/04/02
  • C++11 スマートポインタの話 - ここは匣

    C++にはガーベジコレクタが言語的には存在しないので、動的に確保したオブジェクトのメモリの管理はプログラマが責任を持って管理しなければ、メモリリーク・リソースリークなどの問題を生じてしまいます。 今時のプログラマはこうした問題を引き起こすリスクを減らす為に、記述ミスの起こりやすい生のポインタを使い自力でnewとdeleteを記述する事を避けて、安全なスマートポインタ、即ちオブジェクトの寿命により自動的にメモリ解放を行う便利なポインタを利用するべきです。 しかし、スマートポインタと言っても種類が幾つかあり、落とし穴も存在するのでどういった状況でどれを利用するのが良いのかを考察してみます。 Dynamic memory managementを見てみても C++11から随分増えていますね http://en.cppreference.com/w/cpp/memory std::auto_ptr

    C++11 スマートポインタの話 - ここは匣
    Watson
    Watson 2013/03/21
  • Cocos2dxでiOS/Androidの2Dゲーム開発を始めるには

    Cocos2dxとは 「Cocos2dx」とは、Zhe Wang氏によって開発され、彼を中心としてメンテナンスが行われている、オープンソースかつ無料の2Dゲームエンジンです。ライセンスはMITで配布されています。2013年1月時点では2.1.0が最新の安定バージョンとしてリリースされています。 あの「Cocos2d for iPhone」のC++版 もともと、iPhoneゲーム開発向けに開発されている「Cocos2d for iPhone」というゲームエンジンがありますが、こちらはiPhone向けということでObjective-Cで記述されています。 Cocos2dxはCocos2d for iPhoneC++ベースで移植したものです。 Cocos2dxを使うことにより、アプリ開発者は容易にpngなどの画像データからスプライト(背景と独立して動作するオブジェクトのようなもの)を生成し、

    Cocos2dxでiOS/Androidの2Dゲーム開発を始めるには
  • GoogleがB-tree実装のSTLコンテナを公開

    C++ containers that save memory and time cpp-btree - C++ B-tree - Google Project Hosting Googleが、B-tree実装のSTLコンテナー(map, set, multimap, multiset)を発表した。 多くのSTLの実装では、map, set, multimap, multisetは、Red-Black treeで実装されている。Googleの発表によれば、B-tree実装のコンテナーは、赤黒木実装に比べて、速度が上がり、しかもメモリ消費量も削減できるとしている。 紹介まで。 B木は一つのノードに複数の要素を格納する。これにより、ポインターなどのオーバーヘッドを低減でき、メモリ消費量の削減につながる。また、複数の要素を一括してノードに詰め込むため、速度向上もあるのかもしれないが、そのへんはよ

  • 小人閑居して: 【Emacs】C++の補完にはemacs-clang-complete-asyncを

    2012年9月3日月曜日 【Emacs】C++の補完にはemacs-clang-complete-asyncを いつだったかEmacsでC++の補完のためのElispとしてauto-complete-clangを紹介した。そこに書いた通りauto-complete-clangは直接clang -cc1を叩いているのでclang -cc1でライブラリのパスが通っている必要がある。自分でビルドしたclangでは普通パスが通っていない(というかそちらのほうが正しい挙動のはずなのだけど)ので使い物にならない。 弥縫策として「clangに投げるコマンドにパスを-Iで全部ベタ書きしてね☆」というのが作者からのコメントだったが、めんどくさい。 そんなこんなでちょっと古い(Ubuntuのリポジトリにある)clangを使っていたのが昨日まで。昨晩emacs-clang-complete-asyncという

  • ゲームプログラミングにおけるC++の都市伝説 - ソフトウエア研究会in秋葉原 - PukiWiki

    ゲームプログラミングにおけるC++の都市伝説 † この記事は、C++ Advent Calendar 2012 22日目の記事です。 Prev 21日目の記事 CEANによる配列操作 Next 23日目の記事 構造化並列プログラミング 時間の関係で3つの都市伝説しかご紹介できませんでしたが、またの機会があれば他の都市伝説についてもお話したいと思います。 2012/12/22 written by h.godai @hgodai 目次 初めに 都市伝説1 C++は遅いのでゲームには向いていない 都市伝説2 boost::poolはゲームには向いていない 都市伝説3 boostライブラリは怪しいライブラリだ。使うと呪われる。 ↑ 初めに † かつて、8bit時代はゲームのプログラムはアセンブラが主流でした。やがて、ゲームのプラットフォームが16bitから32bitになるに従い、C言語でゲーム

    Watson
    Watson 2012/12/24
  • Google C++スタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

  • 数独の高速化 - Cybozu Inside Out | サイボウズエンジニアのブログ

    「サイボウズ・アドベントカレンダー」の4日目です(これまでの記事一覧)。どうやら三日坊主は免れたようです(笑)。 (0) はじめに こんにちは。サイボウズ・ラボの川合秀実です。私は主にサイボウズ製品の高速化のお手伝いをしています。しかし先日、製品とは関係ないものを高速化したので、今日はそれを発表します。 サイボウズには社内勉強会がいくつかあって、その中にはC++の勉強会もあります。私はサイボウズの勉強会に参加するのが好きなので、このC++の勉強会に参加してみました。この勉強会では、「数独」というパズルを解くプログラムをC++で書いてみよう、というのが最初のテーマでした。参加者各自がプログラムを書き、翌週にお互いにレビューしあうということが行われました。 ここで私はやらかしてしまいました。ええ、そうです、高速化してしまったのです! 言うまでもないですが、誰もこんなことは望んでいません。そもそ

    数独の高速化 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • なぜ、いま「セキュアコーディング」なのか?

    なぜ、いま「セキュアコーディング」なのか?:もいちど知りたい、セキュアコーディングの基(1)(1/2 ページ) 多くのソフトウェアが脆弱性を抱えたまま出荷され、不正アクセスや攻撃の脅威にさらされているいま、セキュアな開発に関する技術や経験を有するプログラマがいっそう求められるようになりました。この連載ではC/C++言語を例に、セキュアコーディングで特に重要となるトピックスを紹介していきます。 ソフトウェアセキュリテイをめぐる状況 今月から数回に渡って「C/C++セキュアコーディング」の連載を担当させていただくことになりました、JPCERTコーディネーションセンター(JPCERT/CC)、脆弱性解析チームの久保と戸田です。よろしくお願いします。第1回目の記事は久保が担当します。 まず始めに、連載のタイトルにもある「セキュアコーディング」とは何なのか、言葉の整理も兼ねて、あらためて考えてみ

    なぜ、いま「セキュアコーディング」なのか?
  • libdcompile

    あ\n こんにちは、fadisです。★最近話題の某A社で働いています。★きな言語はC++、好きなエディタはVim、好きなディストリはGentooですが、昨日東京の方でやっていた闇鍋プログラミング勉強会によると、★この3つはTLから変態を検出するキーワードとして使えるらしいです。ちょっと、こんなに健全な人が変態に分類されるとか誤認識にも程があると思うのですが、\n こんにちは、fadisです。★最近話題の某A社で働いています。★きな言語はC++、好きなエディタはVim、好きなディストリはGentooですが、昨日東京の方でやっていた闇鍋プログラミング勉強会によると、★この3つはTLから変態を検出するキーワードとして使えるらしいです。ちょっと、こんなに健全な人が変態に分類されるとか誤認識にも程があると思うのですが、\n こんにちは、fadisです。★最近話題の某A社で働いています。★きな言語はC

  • C++er最強伝説

    プププランドのプリンス RiSK @sscrisk C++erはTMPやる。TMPのためにHaskellやる。Haskellやる過程で圏論を知る。よってC++erは圏論知っている。C++er最強。 2011-01-07 12:12:08

    C++er最強伝説
    Watson
    Watson 2012/08/20
  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3