Rokiのチラ裏

学生による学習のログ

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

iterator requirementsにassignableを要求される事による問題

C++

※追記 当エントリは「STLコンテナの気まぐれな実装によってiteratorをassignされる事による問題」というタイトルであったが、これは気まぐれな実装ではなく、標準の文面に規定されたルールの範囲内での話であったため、誤った解釈に基づくようなタイトルや文…

縦横比率を維持しつつ、横幅に合わせて画像を囲うボックスのheightを可変的に取る

仕事(アルバイト)でWebページを弄っている。widthとの比率が考慮されたheightを可変的に取らなければならない問題があり、cssだけでなんとかできないものかと考えていたが、思いつかなかったのでjqueryを使った話。 @530506 画像をimgタグでベタ貼りした時の…

brainf**k インタプリタジェネレータ

C++

何だか凄く早い時間に起きてしまい、特にやることもないのと、最近アニメのセリフをbrainfuckの命令語に置き換える遊びが再発しているので、ジェネレータというかライブラリとも言えぬ小さいヘッダを書く事にした。 こう使う。一応元ネタさんと同じ命令語で…

自宅ローカルサーバー(apache,motion,ping,AP)構築

前書き Amazon dash buttonなどと連携させたmotionサーバー(監視カメラ)を以前構築したわけだが、最近は更に用途が増えてきている。 例えば、最近何故だかマンション内の回線が不安定であるのでpingを飛ばしたりしている。マンション内と断定したのは、定期…

あらゆるSTLコンテナをあらゆるSTLコンテナへ一発変換する(連想配列などを除く)

C++

range adaptorライブラリを書いていて、copiedがあるのだから、集合の種類を指定できても良いだろうと思い、実装する事にした。 以下のように使える。 auto v = boost::irange(0x41,0x47) | srook::adaptors::to_range<std::vector>(); // boost::irangeと併用可能 auto l</std::vector>…

C++14までの標準規格実装に準ずる厳密なhas_iterator

C++

void_t detection idiomのエントリなどから何度か当ブログで登場している、イテレータを持つtypeであるかを判別するメタ関数has_iteratorであるが、これまでのエントリでは以下のような実装を示してきた。 template<class,class=std::void_t<>> constexpr bool has_iterator_v=std::fal</class,class=std::void_t<>…

Intel Code Modernization 2017に参加した

Intel Code Modernization 2017に参加した。Intel流のParallel Computingについての情報やそれに対する知見を得た。その際に個人的に印象深かったAVX512命令であるが、当然ながら今現在でその命令に完全対応したコンシュマー向けのアーキテクチャは存在しな…

swap of variadic templates packages

C++

オレオレライブラリ、Srook C++ Librariesでは、Variadic templateを端的なpackで型情報を保持している。 // simply pack implemention template<class...> struct pack{}; かの有名なAndrew Koenig氏は、swapは基本的な操作であると述べている。 よって、Variadic tem</class...>…

Amazon dash buttonでmotionのオンオフ

動機 以前頂いたVostro 1540の使い道をこれまで色々と試行錯誤した結果、自宅内のLANを用いた様々な用途でのサーバーとして稼働させるという方向性で落ち着いた。最近はその用途の一つとして、motionという動体検知ユーティリティツールを用いた自宅内の監視…

C++11でのムーブキャプチャをシミュレート

C++

C++11の文法内ではラムダ式の構文でムーブする事はできない。 auto ptr=std::make_unique<int>(0); [a=std::move(ptr)](){}(); // From C++14 ググると様々な方法(コピーキャプチャした際にムーブを行わせるラッパー等)が検討されている。その中の1つの方法として</int>…

同じ型が入った std::tuple を楽に書きたい

C++

同じ型が入った std::tuple を楽に書きたい - Qiitaというようであれば、オレオレライブラリsrook.mpl.variadic_playerでも、より簡単に記述できますよ〜、という紹介。 #include<srook/mpl/variadic_player.hpp> #include<boost/type_index.hpp> #include<iostream> #include<tuple> int main() { using int6_tuple_type = // int型</tuple></iostream></boost/type_index.hpp></srook/mpl/variadic_player.hpp>…

例題メモ

問題を作成したのでそのメモ。 Q 整数 という数列がある。その数列中からいくつかを選び、その和を とする。 任意の整数 、 、 を入力(任意の数値が設定できるのであれば何でもいい)し、上記の関係の数列であるか判別しなさい。 解法 この問題の解法は、BFS…