Source of Nothingness - void

* Menu

About | Profile | まとめ | オリジナル | xyzzy | あんてな | | buzz

* 2008-09-25 :

http://snmsts.dreamhosters.com/diary/index.cgi?routine=one&name=2008-09-25-0306
void f(void){
return (void)1;
}

C++としては合法というのが個人的な見解。
まず、戻り値が void の関数の戻り値として別の戻り値が void の関数を置くことが合法。
# http://ja.wikipedia.org/wiki/Return%E6%96%87#C.2FC.2B.2B
つまり、以下の関数 f はOK。
void g() {}
void f() { return g(); }

もうひとつ、C++でキャストは変換演算子とみなすことが可能。
演算子ということは関数で、void へのキャストは戻り値が void の関数ということになる。
ということは上の状況と等しい、ということで合法。

Cとして合法かどうかはよく分からない。

* memo : xyzzy lisp FFI

いつかちゃんとまとめたい。

* xyzzy lisp : uchardet