>> > LONG_LONGという言葉を使うとCRuby固有に聞こえますけど、要する >> > にlong longのデータをどう扱いますか、ということなので、あまり >> > LONG_LONGという字面にとらわれて考える必要はないと思います。 >> >> 純粋に C の long long を実現するもので、 >> long long が存在しないときの挙動に合意が取れるなら >> それはとくに問題ないんじゃないでしょうか。 > > ふむ。 > > では、以前も述べたように存在しないときの挙動はArgumentErrorで > よいと思いますが、誰か異論がある人はいますでしょうか? 現実的な範囲ではどのコンパイラもソフトウェアエミュレーションでint64_t を サポートできているようなので細かい話ですがプラットフォームの都合で 失敗するときに ArgumentError にするのはあまり好きではありません。 この状況で失敗したときってアプリ側でfallbackが書けるケースはまれで そのまま終了するのですが、ArgumentError だとアプリケーションにバグが あることを暗に言っているのでミスリーディングだと思うのです。 また、逆にfallbackが書けるケースでいうとプラットフォームが非対応のときは fallbackしたいけど、それ以外のときはfallback したくないはずなのです。 それ以外というのは、よばだし側がライブラリでさらに上位のアプリケーションが 間違った引数をわたしてきた場合、ということですが。 # だけど NotImpErrorは %s() funcsion is unimplemented だから関数にしか使えないんだよねえ。使えない奴・・