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

問題2

C++

この前の問題2が少し気になっていた。

交互に要素を取ることで、2つのリストを結合する関数を記述せよ。例えば [a, b, c]と[1, 2, 3]という2つのリストを与えると、関数は [a, 1, b, 2, c, 3]を返す。

というやつである。

というわけで、std::array<char, 3>std::array<int, 3>を受け取ってstd::tuple<char, int, char, int, char, int>を返す関数を書いた。

続きを読む

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);

みたいなことができてほしい(今書いているコードでできる必要があったわけではないが……)。とっとと実装を見せろ、という人はこの記事の最後にコードの全体がある。

続きを読む

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

C++

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

続きを読む

何度目になるのだろう

 自分が考えたことを公開するための場を持つのは。始めた後少しの間は続くのだが、数ヶ月くらい経つと放置するようになってしまい、半年も経ってから見ると書いていた当時と感覚が変わってしまっていたりして、何となくそこに自分の作った何かを追加することが躊躇われるようになってしまう。

 しかし以前に書いたものでも、今も共感できる、というか、自分が書いたものだと感じられるものは残っているので、そういったもので当たり障りのないものは一部移植していきたい。