altebute.hatenablog.com

犬も歩けば規格にあたる

2015-01-01から1年間の記事一覧

高階関数内で、引数の引数の型を取得する

いなむ先生とバンビちゃん先生にご助力頂いてやっと書けたコードです。多謝! 2016.01.03 追記 VC++では関数ポインタの型推論について、Variadic Templateのマッチングの優先順位がおかしいため正常に動作しません。 まず以下のコードについて考える。 templ…

Anker PowerLine USB-C & USB 3.0 Cableは規格に準拠していて安全らしい

Googleのエンジニアである、Benson Leung氏が、Amazonで片っ端からUSB-Cケーブルをレビューし、規格違反のケーブルを弾劾しているのは周知の事実である。 今回は、Google Nexus 5Xを購入したので、定番であるAnkerのケーブルを買う事にした。 Ankerのケーブ…

std::as_const と sprout::as_cont の違い

std::as_const と sprout::as_const は、何れも引数を const 修飾された型に変換する関数テンプレートである。尚、 std::as_const はC++17にむけて提案されている関数であるため、実装されている環境は少ない。 Constant View: A proposal for a std::as_con…

cv修飾された仮引数はUniversal Referenceになれない

C++

以下のコードは合法である。 #include <type_traits> #include <iostream> #include <boost/type_index.hpp> using namespace std; using boost::typeindex::type_id_with_cvr; template< typename Arg > void f( Arg&& arg ) { cout << "`Arg` is `" << type_id_with_cvr< Arg >() << "`" << endl; cout <</boost/type_index.hpp></iostream></type_traits>…

参照型に対するcv修飾子はill-formedまたは無視される

C++

const int& は const int への参照であるため、well-formedであるが、 int& const はint&に対するcv修飾であるためill-formedである。 ただし、cv修飾される型名が typedef-name または decltype-specifier の場合、cv修飾子は無視される。 また、同時に ref…

Android 6.0 Marshmallowでアスキーアートを表示する

ブートループになっても知りません。 分からない所は調べてください。 大まかな順序 Androidの開発者向け環境を整え、パスを通す adb reboot bootloader twrpを送信しブート( fastboot boot ) twrp上で/systemをマウント adb pull /system/etc/fonts.xml fon…

マルチディスプレイ時に稀に一部のディスプレイが表示されない場合の対処法

普段デュアルディスプレイ環境を使用しているのだが、稀にサブディスプレイが表示されない場合がある。 傾向を察するに、アナログディスプレイとの接続時に、ディスプレイとグラフィックスカードの相性が悪いと、接続を検知出来ないのかもしれない。 多くの…

PushbulletのPortalが凄いかも知れない。

PCとAndroid端末をWEBを介して接続し、様々なプッシュ通知を行うサービスを提供しているPushbulletが、新しいアプリPortalをリリースした。 Pushbulletでは、Androidに届いた通知を、PC側のブラウザの拡張機能を用いて、Googleのクラウドメッセージングサー…

RAR for Androidが素晴らしい件

Android上でzipアーカイブを解凍するためにRAR for Androidを導入したのだが、これが素晴らしかった。 Android向けのアーカイブの解凍アプリは多数あるが、RAR for Androidの特筆すべき点はアーカイブ内にパスに日本語を含むファイルも文字化けを起こす事無…

Windows 10 Build 10130でPINによるサインインが出来なくなった時の対処法

設定 -> アカウント -> サインイン オプション 暗証番号 (PIN) -> PIN を忘れた場合 指示に従って再設定 上記の手順でPINによるサインインが利用出来るようになる。

Windows 10 Insider Previewで、コマンドプロンプトでフォントが異常に小さくなった時の対処法

原因 MS ゴシックがインストールされていないのが原因です。最初にインストールしたWindows 10が英語版だからなのか否かは不明です。 対処法 使用したいフォントをインストールする レジストリを編集する コマンドプロンプトの設定でフォントを選択する と…

niconicoがAndroidのバッテリードレインを引き起こす件について

ニコニコ生放送をAndroidで見るために公式アプリであるniconicoを使っているのだが、こいつがバッテリードレインを引き起こしていた。 事の経緯 電池の履歴の詳細を見て、使っていない時も常にスリープになっていない事に気付く。 twitterの同期とtwitcle pl…

規格で学ぶ、例外と未定義の動作

例外周りを今まできちんとやってこなかったので、ちょいちょい調べたところ、日本語のWEB上の情報だけでは足りなかったので、規格にあたった。 戻り値を戻さない制御 以下のプログラムは多くのコンパイラで警告を発する。 int f(){} int main(){} 理由は関数…

Boost.Multiprecision と BBP formula を用いて整数演算のみで円周率を近似する。

前回の記事で boost を導入したので、 Boost.Multiprecision と BBP formula を用いて整数演算のみで円周率を近似してみた。 整数演算のみなので、如何なる実行環境でも同じ結果が得られる筈。 cpp_rationalやcpp_intが内部的に浮動小数点演算を使用していた…

boost 1.58 を Visual Studio 2013 環境で導入した

boost 1.58 を Visual Studio 2013 環境で導入した。 あまりにもサックリ出来てしまったので驚いた。 boost 1.58 をダウンロードし、適切な位置に解凍 適切なコマンドラインでビルド C:\boost_1_58_0>bootstrap.bat > build.log && b2.exe -j 12 >> build.lo…

Nexus 6を購入して3ヶ月がたった

Nexus 6を購入して3ヶ月がたった。私的にはそれなりに満足しているが、良い所もあれば悪い所もあるので、つらつらと書き連ねていきたい。 良い所 最新のOSが動く 画面が大きい 悪い所 Lollipopは不安定 大きすぎる 重いので小指に負担がかかる 価格が高い Lo…

MacBookに対する所感まとめ

もう大分時間が経ってしまったが、新型MacBookが発表された。最近になって漸く店頭に並ぶようになり、私も触ってきたので、その所感を纏めたいと思う。 新型MacBookは正しく未来だ。小型のラップトップの多くはこうなっていくのだろう、と確信させてくれる製…

Visual Studioで単一のプロジェクト内に同名のソース・ファイルが含まれていてもビルドが通るようにする方法

以下のコードはVisual Studio 2013のデフォルト設定ではエラーとなる。 // ./a/func.hpp void func_a(); // ./b/func.hpp void func_b(); // ./a/func.cpp #include <iostream> #include "func_a.hpp" void func_a() { cout << "a" << endl; } // ./b/func.cpp #includ</iostream>…