C++ソフト開発ツールのセオライザー

技術解説

  • HOME »
  • 技術解説

第25回 ローカルな関数テンプレート的なジェネリック・ラムダ

こんにちは。田原です。 C++は関数の中で関数を定義できませんがクラスは定義できました。ではテンプレートはできるか?と問うと残念ながらできないようです。しかし、C++14から導入されたジェネリック・ラムダは一種のテンプレ …

第24回 高性能だがちょっと危険な参照キャプチャ

こんにちは。田原です。 前回はラムダ式のコピー・キャプチャを解説しました。コピー・キャプチャは安全なので寿命の長いラムダ式でも安心して使えます。ですが当然コピー負荷が掛かります。コピーせずにパラメータを渡して保持するには …

第23回 ラムダ式のメンバ変数≒キャプチャ

こんにちは。田原です。 ラムダ式は「ある種のクラス(operator()を持っている)」のオブジェクトです。ですので、仕組み上ラムダ式はメンバ変数を持つことができます。そして、C++のラムダ式はそれを実にさりげなく使える …

第22回 関数オブジェクトとラムダ式

こんにちは。田原です。 前回、std::tupleの各要素を動的にアクセスする方法を解説しました。しかし、取り出した要素に対して行う処理は別途 関数テンプレートを用意して呼び出しました。しかし、その内容が数行程度の短い時 …

第21回 std::tupleの要素を動的にアクセスする

こんにちは。田原です。 前回、std::tupleの要素全てを静的に枚挙してみました。しかし、全てではなく特定の1つを表示したい場合もあるでしょう。また、どの一つを表示するのかコンパイル時ではなくプログラム起動後に決定し …

第20回 std::tupleの要素を静的に枚挙する

こんにちは。田原です。 std::tupleには複数の要素を保存できます。ならば、それを枚挙したくなりますね。(私だけ?)しかし、これが意外に難しいです。std::get<i>(タプル)の i はコンパイル時 …

第19回 CRTPを使ってみよう!

こんにちは。田原です。 CRTPとはCuriously Recurring Template Patternの頭文字で「奇妙に再帰したテンプレートパターン」とも訳されるようです。「奇妙」は「おかしな」とか「変な」のニュア …

第18回 ユニバーサル参照の落とし穴

こんにちは。田原です。 私はChironianのハンドルで良くteratailに書き込みしているのですが、ちょと前にユニバーサル参照に関連した質問がありました。そこで私も初めて気がついたのですが、ユニバーサル参照には意外 …

第17回 続々・可変長引数テンプレート

こんにちは。田原です。 今回まで可変長引数テンプレートのパラメータ・パックの加工方法の解説を続けます。「std::forwardを使うケースが多いのでそれも書いた方が良いのでは?」との意見を頂きましたのでこれと、テプレー …

第16回 続・可変長引数テンプレート

こんにちは。田原です。 今回はパラメータ・パックの展開方法についてもう少し解説します。1つはパラメータ・パックを加工して展開できるお話、もう一つは再帰を使わないで関数パラメータ・パックを展開する方法です。後者を使えるケー …

« 1 2 3 9 »
PAGETOP
Copyright © Theoride Technology Co.,Ltd. All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.