どうでもいいんだけど、命名法の違いの理由が気になる …
33.4 関数オブジェクト
(算術演算向け関数オブジェクト)
f=plus<T>{} xとyの型がTであれば、f(x,y) は x+y を意味する。
f=minus<T>{} xとyの型がTであれば、f(x,y) は x-y を意味する。
f=multiplies<T>{} xとyの型がTであれば、f(x,y) は x*y を意味する。
f=divides<T>{} xとyの型がTであれば、f(x,y) は x/y を意味する。
f=modulus<T>{} xとyの型がTであれば、f(x,y) は x%y を意味する。
f=negate<T>{} xの型がTであれば、f(x) は -x を意味する。
考察:
multiplyとdivideだけに三単元もしくは複数形っぽいsが付いているのは何故?
一瞬、この二つは動詞だからかと思った(plus/minusは前置詞、modulusは名詞)けど、同じく動詞のnegateはnegatesにはなっていない … 。
関数オブジェクトのテンプレートの名前なので、名詞扱いにしているのだろうとは思うのだけど。negateの対象は一つだからsが付かないと考えるなら、multipliesとdividesのsは複数形のsと見ればいいのかしらん?
いずれにしてもこれはこの本ではなくてC++のライブラリの仕様の問題ですな。