ぽてとめも

ゲームプログラマ見習いが自由気ままにアウトプットしていくとこ

オブジェクトコピーの抑制とスーパー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;
}

perl

use strict;
use warnings;
print sum(4, 2);

sub sum {
    my $x = $_[0];
    my $y = $_[1];
    return $x + $y
}

ocaml

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)

lisp

(format t "Hello, World!")

これは便利だ。