C++0x Axiom

# 間違ってたら誰か指摘してください


C++0xConcept では concept, concept_map, requires, late_check の他に axiom というキーワードが追加される

axiom とは、日本語では"公理"という意味で「命題Pが成り立つならQも成り立つ」という"概念を定義する条件"や"証明無しで認められる最も基本的な命題"のことらしい


axiom は concept 内で型の意味(セマンティクス)を定義するための機能のようだ

concept Number<typename N> {
    // ...
    axiom {
        Var<N> a, b;
        a+0 == a;
        0+a == a;
        a+b == b+a;
    }
}

ただし、 axiom による型チェックは動作チェックを行うため、コンパイル時に行うことは難しいだろう



C++0x言語拡張まとめ