読者です 読者をやめる 読者になる 読者になる

typedef typename trait::template something<T>::type type;

C++

あるstructのメンバであるtemplate structをtemplate argumentとして受け取ってその中身をtypedefする、というときの書き方が(もう少し普通な状況でも出てくると思うが調べていない)、この18行目の文法がキモい2017だったので置いておく。 [Wandbox]三へ( …

vtkで分子を描画

C++

vtk7.0.0が出たという記事を見た時、といってももう1年も前なのだと今気付いたが、分子のためのクラスがあることを知った。で、以前vtkで分子を表示するために複数個の球体を浮かべようと悪戦苦闘した記憶が思い起こされ、こういうものがあるなら使ってみた…

スコープ内の時間計測

C++

以前、関数の時間計測のために返り値をラップする構造体を作っていたが、これはRAII的に考えて Logger logger; /*... codes ...*/ { stop_watch<std::chrono::milliseconds> sw("block-name", logger); /* do_something */ } とスコープの先頭で宣言すればスコープ内でかかった時間のロ</std::chrono::milliseconds>…

自作コンテナを作ろうとしたらboostにあった話

タイトルで全てを言い切ったので今日の日記は終わりです。嘘です。でもマジで書くことがない。

関数の時間計測

C++

C++のthreadライブラリを使っている。いかんせん並列化の経験が少ないのでちゃんとthreadが立ち上がっているのかとか、並列に処理されているのかとかがよくわからないし、ツールもよく知らない。VTuneのことは知っているが個人で持っているようなものでもな…

コンテナ内の一括計算

C++

を、たまにコードを見たりしている後輩が自分のためのコードの中でよくやっている。要するにこういうことだ。 std::vector<double> v1; std::vector<double> v2; // do something... assert(v1.size() == v2.size()); std::vector<double> v3(v1.size()); for(std::size_t i=0; i</double></double></double>

variadic templateで遊ぶ

C++

この記事は、C++ Advent Calendar 2016の5日目の記事です。 まえがき C++11以降、C++では可変長テンプレートなるものが使えるようになった。要するに0個以上の任意個の型引数を取れるテンプレートである。std::tupleなどでお馴染みだろう。 この記事では、可…

C++11とC++98 & boostの切り替え

C++

現在、21世紀なので普段はC++11を基本的に使っているのだが、たまにC++98でないといけないケースは存在する。共用のサーバにC++11対応コンパイラが入っていない、などだ(なぜ入っていないかは謎である)。かといって石は何の変哲もないXeonだったりするので非…

問題2

C++

この前の問題2が少し気になっていた。 交互に要素を取ることで、2つのリストを結合する関数を記述せよ。例えば [a, b, c]と[1, 2, 3]という2つのリストを与えると、関数は [a, 1, b, 2, c, 3]を返す。 というやつである。 というわけで、std::array<char, 3>とstd::ar</char,>…

variadic template で reverse

C++

今日、ふと思ってこのようなものを実装できないか考えてみた。 template<template<typename ... T> class target, typename ... T_args> struct reverse { typedef target</* reversed T_args... */> type; }; 例えば、 typename reverse<std::tuple, int, double, std::string>::type t = std::make_tuple("foo", 3.14, 42); みたいなことができてほし</std::tuple,>…

ソフトウェアエンジニアなら1時間以内に解けなければいけない5つの問題 in C++

C++

何気なく調べ物をしていると、全然関係なかったのだが「ソフトウェアエンジニアなら1時間以内に解けなければいけない5つの問題」なる記事が目に入った。流行ったのは去年の夏前頃のようだが、遅ればせながら参戦してみた。一番よく使っている言語、C++で。結…