Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
![優れたモダンなC++を書くのに役立つC++ Core Guidelines](https://cdn-ak-scissors.b.st-hatena.com/image/square/856f16c8f47cd5adf04908f69a401fdc6b898551/height=288;version=1;width=512/https%3A%2F%2Fcdn.infoq.com%2Fstatics_s2_20240705082009%2Fstyles%2Fstatic%2Fimages%2Flogo%2Flogo-big.jpg)
15. Visual Studio は 着実に C++11/14 に対応 2010. 4 2010 auto, move, nullptr lamdas, <random> 2012. 9 2012 Range-based for, enum class <chrono> , <ratio>. <thread> 2013. 6 2013 Preview Variadic templates initializer_lists, C++14 libs 2013. 9 2013 RC Non-static data member init defaulted / deleted functions 2013. 11 2013 2013 Q4 2013 + CTP constexpr, noexcept C++14 generic lamdas
マイクロソフトは、C++でいかにしてMicrosoft Officeのクロスプラットフォームを実現したのか マイクロソフトはOfficeソフトウェアのマルチプラットフォーム展開を進め、Windows版、Macintosh版だけでなくWebから使えるOffice Onlineに加え、iPad版、Android版も公開を始めました。 Officeのような大規模なアプリケーションのマルチプラットフォームへの移植は、どのようにして行われているのか。9月に米国で開催されたC++言語のイベント「CppCon 2014」で行われた同社の講演「How Microsoft Uses C++ to Deliver Office (and More) Across iOS, Android, Windows, and Mac, Part I 」がYouTubeで公開されています。 Officeのコア部分はC++
http://www.infoq.com/news/2014/05/dropbox-cpp-crossplatform-mobile? 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約3時間前 InfoQの記事を読んでもっと詳しく知りたいと思ったので、元ネタを確認して個人的に興味をもったポイントをまとめてみました。 昨年のMobile@ScaleでのStephen Poletto (Dropbox) とSean Beasusoleil (Mailbox)の講演 先日のUIKonf2014でのSteven Kabbes (Mailbox)の講演における、Core Dataまわりの取り組みのメモ UIKonf2014でのSteven Kabbes (Mailbox), Stephen Poletto (Carous
Andrei Alexandrescuが考案したExpected<T>というクラスを、いまBoostとC++標準に提案する動きがあります。 Vicente Botet EscribaさんとPierre Talbotさんが現在開発を進めているexpectedクラスは、エラー値と正常値を汎用的に表す型です。boost::optionalやboost::variantの亜種で、HaskellやScalaにあるEitherをエラーに特化させたものです。Haskell的にはMonadErrorに相当するそうです。私も以前、似たようなのを書きました:「エラー許容型を作った」。 ゼロ割りを適切にハンドリングする、安全な割り算関数に例外を使うと、以下のようなコードになります: struct DivideByZero: public std::exception { … }; double safe_div
この記事はC++ Advent Calendar 2013の15日目にエントリしています。 内容はC++標準ライブラリとスレッドセーフに関する解説になります。 flickr / rennasverden もくじ What's スレッドセーフ? スレッドセーフという幻想 基本型とデータ競合 C++標準ライブラリとデータ競合 C++標準ライブラリ:シーケンスコンテナ編 C++標準ライブラリ:連想コンテナ編 スレッドセーフ RELOADED 基本的なスレッドセーフ保証 std::shared_ptr<T> std::rand() std::cout (本文のみ約9000字) はじめに マルチスレッド対応の点では他言語に遅れを取っていたプログラミング言語C++ですが、C++11ではようやく標準ライブラリにスレッドサポートが追加されました。C++11スレッドサポートではスレッドクラスstd::thr
かつて、ゲームプログラミングはアセンブリが主流で、8bitのCPUは掛け算や割り算すらないものでした。割り算がないCPUっていつの時代だよ、っていう人たちもおりますが、ゲームボーイアドバンスに搭載されているARM7TDMIは除算の命令を持っていません。(故に除算を書くと死ぬほど遅いので、乗算で代用したりする) また、浮動小数に対する演算ユニットを持っていないハードウェアもあります。ニンテンドーDSに搭載されているARM946E-Sですら、浮動小数演算ユニットはありません。(CPUの機能としてはオプションで存在する)そのために固定小数点といった技術もあるわけですが、古くさい話です。 これらはCとC++の機能を駆使していかにパフォーマンスを出すかを余儀なくされた時代です。 さておき、最近はスマートフォンでのゲーム開発も進化しており、C++がiPhoneとAndroidの両方で動くということもあ
SGソフトウェアの開発日記(鉄道ゲーム開発もしてますが最近はDLNAがらみの開発中心) ハードディスク故障に備えるための省スペースデータ保護ツール「RAIDっぽい」や、DVD-RAM用コピーツール「VRストリーム抽出ツール」など、各種ツールの商品開発の日々の出来事や、よもやま話などを綴っています。 PR SG箱庭鉄道線路を敷いて列車を走らせよう! SG箱庭鉄道 PCユーティリティファイル名の番号の桁を揃える 整列! マルチドライブ高効率バックアップ RAIDっぽい 保管期限切れのファイルを一括削除 保管期限切れファイルクリーナー まとめてファイルを移動 ファイル移動ツール ファイルの重複を検出 ファイル重複検出ツール サブフォルダ内のファイルを集約 サブフォルダ内ファイル集約ツール 空のフォルダーを削除 空フォルダー削除ツール ホームネットワーク複数のMPE
Develop web applications in C++ Wt is a web GUI library in modern C++. Quickly develop highly interactive web UIs with widgets, without having to write a single line of JavaScript. Wt handles all request handling and page rendering for you, so you can focus on functionality. You don't want to focus on details like request handling or page rendering. You want your application to continue to work ev
子供のころからできるだけ手抜きして成果を挙げることだけは長けている山本です。 今回は、C/C++ で作ったプログラムが運用中にクラッシュするときのデバッグ方法のお話しです。 開発中のデバッグは gdb などでソース追いながらデバッグできますが、運用中ですと strip していたり最適化していたりしてデバッグが難しくなります。 そもそも、いきなりクラッシュすると情報が残らずに困ってしまいます。そんなときどうするか。 Step1. スタックトレースを出力する こんな関数を用意しましょう。Linux 以外の人はそれなりに実装してください。 #include <execinfo.h> #include <unistd.h> void dump_stack() { void* bt[100]; int n = backtrace(bt, 100); backtrace_symbols_fd(bt,
例外安全なコピー代入演算子を定義しようとしたとき, C++11 では Copy して Swap する方法 Copy して Move 代入する方法 の二通りが存在するので,それぞれのメリットとデメリットを比べてみた. Copy して Swap 昨日の記事で説明した方法. struct Hoge { std::vector<int> x, y; Hoge() = default; Hoge(std::vector<int> x_, std::vector<int> y_) : x(std::move(x_)), y(std::move(y_)) {} Hoge(Hoge const&) = default; Hoge(Hoge &&) = default; Hoge& operator=(Hoge rhs /*pass by val*/) noexcept { this->swap(rhs);
いよいよC++の参考書の執筆も例外にまで到達した。例外は、規格の文面量だけで言えば短いが、詳細を解説するのは難しい。なにせ、まともに日本語で解説している本は皆無だからだ。ついでに、規格の文面のバグも発見した。これはすでに報告済みなので、次のC++規格では修正されるはずだ。 ちなみに、"C++ 例外"で検索して出てくる情報の大半が間違っているか、十分な詳細を解説していない。責任は規格違反な実装、特にMSVCにある。MSVCの挙動が全てだと信じる愚者が、規格を参照せずMSVCの挙動をもとに解説を書いているからだ。 たとえば、例外をハンドルしていない状態でオペランドのないthrow式を実行すると、std::terminateが呼ばれる。 int main() { throw ; // std::terminateが呼ばれる } あるC++解説サイトでは、何故かstd::bad_exception
中3女子です。 今回は、みんな大好きユーザ定義リテラルについて。 ユーザ定義リテラルは、値(整数、不動小数点数、文字列)に対するプログラマブルなサフィックスを定義することができる機能である。 例えば糖衣構文や単位を持った値を扱うために用いられる。 { constexpr auto duration = 4_mins + 33_secs; } ユーザ定義リテラルはいらない子か ところで、このユーザ定義リテラルは、方々で微妙な子扱いされている。 というのも、そもそもユーザ定義リテラルは直観的な記述を可能とするものであるはずなのだが、その用法には一見非直観的な落とし穴がある。 例えばユーザ定義リテラルの識別子は、アンダースコアで始めなければならない。 なぜなら、アンダースコアで始まらないサフィックスは、すべて予約されているからだ。 プログラマがアンダースコアで始まらないユーザ定義リテラルを定義し
Fast memory allocations along with memory leak detection can have a big impact on games performance. C++ provides two well known functions to allocate dynamic (heap) memory (malloc and new), these functions are usually very slow because they're general purpose functions and in some implementations require a context-switch from user mode into kernel mode. These functions also do not provide any kin
“C++11 feels like a new language.” – Bjarne Stroustrup The C++11 standard offers many useful new features. This page focuses specifically and only on those features that make C++11 really feel like a new language compared to C++98, because: They change the styles and idioms you’ll use when writing C++ code, often including the way you’ll design C++ libraries. For example, you’ll see more smart poi
C++AdventCalendarの記事です。 さて、 生配列使ってますか? tr1::array(boost::array) 使ってますか? 生配列使っていると答えた貴方、 →まず死ね。 はい、arrayが常識ですよね。 さて、とはいえ、 「テンプレートを使うと遅いしコードがでかいし」 「生配列が一番速いしコードが小さいし」 「なのでテンプレート禁止」 なんて話を聞くこともあるかと思いますが、 こういう事をいう人は大抵「テンプレートを書いたことがない」のに言ってます。 なぜか? こういう人が本当に心配しているのは「テンプレートが肥大化すること」じゃないのです。 「テンプレートが書けないし読めないのを認めたくないからです」 多くはCの老害だからですが、そういう人は放っておいてC++な人はきちんとテンプレートを使いましょう。 だって多くのテンプレートのコードは大きくもなければ非効率でもないか
JavaScript Advent Calendar 2010 という企画をやっています。既にもう7日目なのですが、まだまだ os0x さんや hasegawayosuke さんや nanto_vi さんや secondlife さんといったすごい方々が記事を書いてくれる予定になっていますので、是非チェックしてみてください。 今日は、最近話題の node.js を読んでみます。僕自身は node.js を追っかけてたのは今年の5月ぐらいで、ソースは半年以上見てなかったのですが、この機会にまた読みました。この記事は、C++ は一応読めるけど V8 とか libev はあまり知らない node.js 好きの人を念頭に置いています。 拙訳の Embedder's Guide - V8 JavaScript Engine に書いてあるようなことは説明なしでいきたいと思います。また、適宜 libev
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く