オブジェクトコピーの抑制とスーパーpreのテスト
オブジェクトコピーの抑制
コンパイラが勝手に作ってくれる、(コピー|ムーブ)(コンストラクタ|代入演算子)。
便利だけど、Singletonパターンを使ったクラスでは使えないようにしたい。
そんなときは、
// コピー SingletonClass(const SingletonClass &) = delete; SingletonClass &operator=(const SingletonClass &) = delete; // ムーブ SingletonClass(SingletonClass &&) = delete; SingletonClass &operator=(SingletonClass &&) = delete;
こういったメンバ関数を宣言すれば、利用できなくなる。
ムーブの引数がまだよく分かっていないので、ちゃんと調べる必要があるなー。
スーパーpre
はてな記法のスーパーpreが非常に便利そう。
>|ftype| と ||<に挟まれた部分が、シンタックスハイライト対応スーパーpreとなるようだ。
ftypeのところに「使用したいファイルタイプ*1」を書けばOK。何も書かなくてもOK。
cpp
#include <iostream> int main() { using namespace std; cout << "Hello, World!" << endl; return 0; }
use strict; use warnings; print sum(4, 2); sub sum { my $x = $_[0]; my $y = $_[1]; return $x + $y }
let fact x = let rec f n ret = if n <= 1 then ret else f (n - 1) (ret * n) in if x >= 0 then f x 1 else f (-x) (-1)
(format t "Hello, World!")
これは便利だ。
*1:使用可能なファイルタイプはここ ソースコードを色付けして記述する(シンタックス・ハイライト) - はてなダイアリーのヘルプ