とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

std::is_standard_layoutのバグ

Visual Studio 2012(Visual C++ 11.0)のstd::is_standard_layoutはバグっている。 再現コード 以下の二つのstatic_assertに失敗してしまう。参照型を標準レイアウト型とみなしてしまっている。 #include<type_traits> static_assert(std::is_standard_layout<int&>::value == fa</int&></type_traits>…

standard-layout class

C++

標準レイアウトクラス(standard-layout class)とは。 規格 N3337(PDF) 9/7,8 A standard-layout class is a class that: — has no non-static data members of type non-standard-layout class (or array of such types) or reference, — has no virtual fun…

std::is_trivially_copyableのバグ

Visual Studio 2012(Visual C++ 11.0)のstd::is_trivially_copyableはバグっている。 再現コード 以下の三つのstatic_assertに失敗してしまう。参照型を自明なコピー可能型とみなしてしまっている。さらに、void型を自明なコピー可能型とみなしてしまってい…

std::is_trivialのバグ

Visual Studio 2012(Visual C++ 11.0)のstd::is_trivialはバグっている。 再現コード 以下の二つのstatic_assertで失敗してしまう。参照型を自明型とみなしてしまっている。 #include<type_traits> static_assert(std::is_trivial<int&>::value == false, ""); static_assert(st</int&></type_traits>…

std::is_scalarのバグ

Visual Studio 2012(Visual C++ 11.0)のstd::is_scalarはバグっている。 再現コード #include<type_traits> #include<cstddef> static_assert(std::is_scalar<std::nullptr_t>::value, ""); int main(){} std::nullptr_tはスカラ型(scalar types)なので、static_assertに成功すべきだが失敗してしま</std::nullptr_t></cstddef></type_traits>…

配列型とcv修飾

C++

配列型をcv修飾した場合、その要素型がcv修飾される。 また、要素がcv修飾されている配列型はcv修飾型になる。 この挙動は他の複合型(ポインタ型や参照型など)とは異なるので注意。 コード例 typedef int A[1]; const A a; 要素がcv修飾され、aはconst int […

Visual C++ 2012はメンバ関数のcv修飾でバグがある

Visual Studio 2012(Visual C++ 11.0)はメンバ関数のcv修飾にバグがある。 再現コード 以下のコードをコンパイルするとコンパイルエラーになる。 template<class T> struct s{}; typedef int f() const; s<f> ok; // OK s<int() const> bug; // Compile error, why? int main(){} erro</int()></f></class>…

Visual C++ 2012のis_fundamentalはバグっている

Visual Studio 2012(Visual C++ 11.0)のstd::is_fundamentalはバグっている。 再現コード 以下のコードをコンパイルするとstatic_assertに失敗する。 #include<type_traits> #include<cstddef> static_assert(std::is_fundamental<std::nullptr_t>::value, ""); int main(){} 規格 規格を見るとN333</std::nullptr_t></cstddef></type_traits>…

Clang/libc++のC++1y(C++14)対応状況

Clang/libc++のC++1y(C++14)対応状況が公開されました。分かりやすくてとてもいいですね。 libc++ C++1Y Status

GCCのバグが修正された

GCCでICE - とくにあぶなくないRiSKのブログで紹介した、gcc 4.8.0, 4.8.1, 4.9.0(20130724)でICEになるバグが早くも修正されました。 4.8.2と、4.9.0の次のビルドでは修正されているはずです。 Bug 57981 – [4.8/4.9 Regression] ICE in this code

GCCでICE

gcc 4.8.0, 4.8.1, 4.9.0(20130724)で以下のコードをコンパイルするとICE(Internal Compiler Error)になる。 template<class T> void f(T t, void* = 0) { } template<class T> auto g(T t) -> decltype(f(t)) { f(t); } int main() { g(0); } [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ B</class></class>…

std::bind, std::mem_fnとメンバへのポインタ

C++

std::bindとstd::mem_fnには、それぞれメンバへのポインタ(メンバ変数へのポインタとメンバ関数へのポインタ)を渡せる。std::bindとstd::mem_fnの呼び出し方が違うので注意。 #include<iostream> #include<functional> struct cls{ int mem_obj; cls(int value):mem_obj(value){} v</functional></iostream>…

非スマートポインタを返す不届き者関数をラップしよう

C++

非スマートポインタ(別名:生ポインタ)を返し、プログラマにstd::freeを書かせるような関数がこの世には存在します。 そのような関数は危なすぎるので、安全かつ楽にどうにかしたいところ。ラップしてみましょう。これでC由来の関数はおおよそラップできそう…

電子レンジ(オーブンレンジ)を買った

30年以上使っていたらしい自宅の電子レンジ(オーブンレンジ)が昨晩から動かなくなりました。「さすがにもう寿命だろう」というわけで新しいレンジを買いに行きました。 買いに行った先は、ケーズデンキ。 買ったレンジは、Panasonic オーブンレンジ 26L ブラ…

feedlyを使う

Google Reader が使えなくなりました。そこで feedly に乗り換えました。 何とかデータや私自身の習慣も移行できつつあります。これまでのことをまとめておきます。 データの移行 Google データエクスポート(takeout) から Google Reader (リーダー)のデータ…

Boost C++ Libraries 1.54.0 がでました。

すでにいたるところでアナウンスされていますが Boost 1.54.0 がでました。 Boost 1.54.0 released! : Standard C++ Version 1.54.0 アキラさん、zakさんによりリリースノートの日本語訳もあります。いつもありがとうございます。 Boost 1.54.0リリースノー…

VS 2013でC99対応がされる予定

VS 2013でC99対応 via: Visual Studio 2013 のリリース版で更に追加される予定の C++11 の言語機能 - C++でゲームプログラミング C++11/14 STL Features, Fixes, And Breaking Changes In VS 2013 - Visual C++ Team Blog - Site Home - MSDN Blogs id:osyo-…

いろいろスライド

Dartの基本 - Google ドライブ Dart言語仕様 Pick-up - Google ドライブ Dart VMとOptional Typing - Google ドライブ Future & Stream - Google ドライブ

AngularJS が Dart に移植中

AngularJSのDartへのポーティングが進行中 まだ開発中だが、Angular.dartにはcompiler、scope、expressionsといったといった多数のキーコンポーネントが移植され、bind、repeat、shadow DOMといった多数のdirectiveが完成している。テストもポーティングされ…

Dart 初のベータリリース

Dart の開発は順調に進んでいるようです。 Dart News & Updates: Release Notes for Dart's Beta Release GoogleのDart SDKとエディタがベータへ: パフォーマンス向上, コードサイズ縮小など | TechCrunch Japan 米Google、Web向けスクリプト言語「Dart」のS…

Sutter’s Mill和訳

C++

Exceptional C++―47のクイズ形式によるプログラム問題と解法 (C++ in‐Depth Series) で有名な Herb Sutter は Sutter’s Mill | Herb Sutter on software, hardware, and concurrency というブログを書いており、C++ の話題を取り上げています。 kumada (seiy…

組込みソフトウェア開発向けコーディング作法ガイド[C++言語版]

C++

IPA 独立行政法人 情報処理推進機構:SEC BOOKS:ESCR C++: 組込みソフトウェア開発向けコーディング作法ガイド[C++言語版][PDF]

【ニコニコインディーズ】Lapis, unsang wail【島白】

島白(よだれP)さんが久しぶりに曲を公開しました。2曲とも過去曲の再録音版です。 【ニコニコインディーズ】Lapis【島白】 - ニコニコ動画:Q MP3 【ニコニコインディーズ】unsang wail【島白】 - ニコニコ動画:Q MP3

FirefoxのECMAScript 6対応状況

ECMAScript 6 support in Mozilla - JavaScript | MDN JavaScript 1.6 の新機能 - JavaScript | MDN

GCC 4.8.1 リリース

GCC, the GNU Compiler Collection - GNU Project - Free Software Foundation (FSF) GCC 4.8.1 released [2013-05-31] GCC 4.8 Release Series - GNU Project - Free Software Foundation (FSF) GCC 4.8 Release Series — Changes, New Features, and Fixes…

画像をページから直接印刷するChrome拡張機能

経緯 Chromeでページを開き、その中の画像を右クリックし、コンテキストメニューを開いたところ「印刷」がありませんでした。そこでこんなことをつぶやきました。 なんで Chrome は、ページ上のコンテキストメニューに「印刷」があるのに、画像のコンテキス…

GCC 4.8.0 リリース

GCC, the GNU Compiler Collection - GNU Project - Free Software Foundation (FSF) GCC 4.8.0 released [2013-03-22] GCC 4.8 Release Series - GNU Project - Free Software Foundation (FSF) GCC 4.8 released : Standard C++ 本の虫: GCC 4.8のリリース…

【NNIインスト】BGM素材集その5【島白】 - ニコニコ動画:Q

【NNIインスト】BGM素材集その5【島白】 - ニコニコ動画:Q 島白さんの新曲などのつめあわせ。 Track.01 Operation city Track.02 FORCE Track.03 ハイビーム*1 Track.04 午前の紅茶 Track.06 Stealth-Attack! Track.07 Aegis Track.08 祈祷 Track.09 警鐘 T…

Googleニュース

インターネットを高速化するGoogleの取り組みが盛んですね。 Google、SPDYプロキシを使ったWebブラウザ高速化機能を試験導入 - @IT Googleが仕掛ける新プロトコルQUICとは何か - ぼちぼち日記 Googleが新しい圧縮アルゴリズムZopfliをオープンソースで発表 …

C++ニュース

ニュースといっても新鮮度さがってますし、雑多ですが紹介。 最新のC++を学ぶ - Barbara Moo氏インタビュー Sip from the Firehose : Multi-Device C++ is used everywhere on planet Earth and beyond! C++ REST SDK (codename "Casablanca") - Home Regist…

Ranges implementation?

C++

Ranges implementation? I have (re)implemented a large part of STL using ranges: 「レンジを使ってSTLの大部分を再実装したよー」だそうで。 marcinz/libcxx-ranges · GitHub これによって議論が深まるといいなぁ。find とか rotate とかをどうするのか…

秘密裡でホイミスライム

Googleで「秘密裡」と入力すると、なぜか「ホイミスライム」がサジェストされる。なんぞ?

フィーチャーのメーリングリストがオープン

Features Info Page 前回、WG21(C++) の SG9 (Ranges、レンジ)のメーリングリストがオープンしたことを紹介しましたが、SG10 (Features、フィーチャー*1 )のメーリングリストもオープンしてました。興味のある方は参加(ROMも可)してみてはどうでしょう。 *1:…

レンジのメーリングリストがオープン

Standard C++ Ranges Info Page WG21(C++) には 10 の SG がありますが、その一つが SG9 (Ranges、レンジ) です。SG とは Study Group (研究グループ)のことで、このたび、レンジ研究グループのメーリングリストがオープンしたみたいですね。

今年のまとめ・来年の目標

今年のまとめ 3月から仕事復帰。契約社員。 ゴミくずみたいな仕事が大半 時間見つけて Dartで使い捨てコード書いて楽をする Movable Type独学。どうしてこうなった… Webとかデザインとか。HTML5, CSS3, JavaScript (jQueryとか)独学 なぜか PHP 触る。どうし…

【NNIインスト】BGM素材集その4【島白】

よだれPのBGM集。 【NNIインスト】BGM素材集その4【島白】 - ニコニコ動画:Q 島白[White:Island]でMP3が公開されています。 Track.01 ビール飲みたい Track.02 Turn around Track.03 saizelig Track.04 月光の塔 Track.05 Crucifer Track.06 擬似生命工場 T…

図で見るC++11の概要とかチートシートとか

C++

C++11チートシート http://dl.dropbox.com/u/13100941/C%2B%2B11.pdf 図で見るC++11の概要 C++11: a visual summary of the additions and changes since C++03 | C++ Rocks 実にシンプルですね(迫真) C++11 STL Additions http://cpprocks.com/wp-content…

in<T> イディオム

C++

C++ Advent Calendar 2012 このエントリは、C++ Advent Calendar 2012 の29日目参加記事です。 「一体いつから ― C++ Advent Calendar 終了だと錯覚していた?」 *1 前日 @zakkas783 雑貨's tumblr - テンプレート・メタプログラム中で文字列を使う では本題…

Dart VM を動かすには SSE2 が必要

SSE2 無しの CPU で Dart VM を使おうとすると次のようなエラーメッセージが出て、実行できません。 Dart_Initialize: SSE2 is required. VM initialization failed以前は SSE2 不要だったのですが、バージョンアップの過程でこうなったみたいです。 探して…

ジェネリックなラムダ

C++

An implementation of generic lambdas (request for feedback)—Faisal Vali - Standard C++ ジェネリックラムダは C++1y でどうなるか。期待大ですね。 auto Sum = [](auto a, decltype(a) b) { return a + b; }; int i = Sum(3, 4); double d = Sum(3.14, …

ムーブラムダ

C++

問題 C++11のラムダにてコピーキャプチャだとコストが大きすぎる場合にどうしよう? ラムダは直接ムーブキャプチャできないし… 解法 ライブラリで解決。 Capture by Move Lambda - C++11 — Gist auto lambda = create_move_lambda(std::move(obj), [](T para…

【ニコニコインディーズ】BGM素材集その3【島白】

よだれP、早くも次がきた。詰め合わせ的な物。 →【ニコニコインディーズ】BGM素材集その3【島白】 - ニコニコ動画:Q

スマホにした

と言っても今日ではなく、2012-11-19 (Mon) にです。 長らく SoftBank 820P を使っていましたが、思い切って SoftBank AQUOS PHONE Xx 106SH を買いました。 始めの二日はキー入力が難しすぎでイライラしてスマホを使う気にもなりませんでしたが、ようやく入…

【ニコニコインディーズ】FLY!!【島白】

【ニコニコインディーズ】FLY!!【島白】 - ニコニコ動画:Q よだれPの昔の曲の2012年版ですね。 リンク先主コメで、MIDIとMP3へのリンクが書いてあります。

島白(よだれP)の曲

【VOCALOIDオリジナル】終末36時【島白】 - ニコニコ動画:Q アルバム turn back the cRock! の track12 - 終末36時。アルバム完結! 25時から36時のループを楽しむがよろし。 【VOCALOIDオリジナル】La-a-a-a-a-a-a-a-aughing【島白】 - ニコニコ動画:Q 初音…

条件演算子(三項演算子)…

PHP

ずーっと前に木村さん(だっけ?)が言ってたのはこのことだったんだなぁと…。 →三項演算子 注意: 三項演算子を "積み重ねて" 使用することは避けましょう。 ひとつの文の中で複数の三項演算子を使用した際の PHP の振る舞いは、 少々わかりにくいものです。 例…

関数内で自分自身を渡せない??

PHP

とーっても素人くさいエントリ。次のコードがエラーになる

小分けの処理とまとめた処理をまとめたい

JavaScript限定ではない、もっと一般的な話。 文字列を出力する方法は大きく分けて2通りあると思います。 小分けに出力する 文字列を(メモリの上で)連結して、一度に出力する JavaScriptで具体的なコードを挙げると… function write_each(a, b) { document.w…

C++11 Idioms

C++

問題 こんなデータメンバを持つクラスのコンストラクタをどう書くでしょうか? #include<string> #include<vector> #include<cstddef> class Book { std::string title; std::vector<std::string> authors; std::string pub; std::size_t pub_year; }; C++03では? もう誰も使っていない古のC++03で</std::string></cstddef></vector></string>…

【NNIオリジナル】終末35時【島白】

よだれP新曲。 turn back the cRock! - track11 - 終末35時 36時に続くらしい。 →【NNIオリジナル】終末35時【島白】 ‐ ニコニコ動画(原宿)