アカウント名:
パスワード:
正直言うと、trigraph は既定で off 状態になっていて、#pragma か何かで on にできるのが嬉しいと思うんですけどねぇ。
n2910.pdfにあるIBMの主張によると、「pragmaで文字コードを設定するまで#が使えないので??=を使わないといけないから絶対に困る!」なので、#pragmaでは対処不可能です。大体文字コードによって#のコードポイントが違うなんてふざけたコード体系を作る方にそもそもの問題があると思うし、そんな特殊な環境であればコンパイラの拡張機能として提供し続ければ良いだけだと思うんですけどね。
「pragmaで文字コードを設定するまで#が使えないので??=を使わないといけないから絶対に困る!」
あ〜、そうか、鶏と卵になってしまいますね。 じゃあコンパイラのオプションということで。 ていうか、trigraph が既定で有効だと、
const char filename_with_wildcard[] = "hoge????.txt"; /* ISO 9899/14882-ly incorrect. */
ってのがとってもアレなんですけど...
大体文字コードによって#のコードポイントが違うなんてふざけたコード体系を作る方にそもそもの問題があると思うし、そんな特殊な環境であればコンパイラの拡張機能として提供し続ければ良いだけだと思うん
"#"のコードポイントが異なるのは構わないんじゃないでしょうか (e.g. UK-ASCII)。実際、"\"のコードポイントが異なっても気にしていない人々 (== 我々) が世界にはいるわけで。
コードポイントは単なる数値だという認識なのですが違いましたかね?UK-ASCIIについては良く知らないのですが、日本で使われてきた文字コードでは円記号は"\"のグリフを変えただけあって、別のコードポイントに"\"を移動したわけではないですよね。同体系の文字コードであるにも関わらず、"#"という基本的な文字のコードポイントがxであったりyであったりするのは問題ではないかと思ったわけです。
厳密に衒学的なことを言うと、日本には JIS X0208 があるので、
putchar('¥n');
ではなく、
putchar('\n');
と書くのが正しい... という主張もできなくはないです (私はそんなコード書きたくはありませんが :-)
UK-ASCII については、私も英国在住なわけではないので実際に彼らがそういうコードを読み書きしていたかどうかは定かではないのですが、100% pure UK-ASCII (正確には BSI 4730?) 的には、
£include <stdio.h>
というコードが書かれていたはずです。 これはちょうど JIS X0201 の世界で ¥ が ∖ のコードポイントに対応しているのに似ています。 ISO 646 の national variant な領域に別の「#」があったらエラいことになっていたかも知れませんが、幸い、BSI 4730 には「#」が存在しない (ハズな) ので、我々同様 £ -> # の読み替えですんでいたのでしょう。
一方、EBCDIC な人達の variant はそんなものではすまないでしょう (なんせ日本のメインフレームだけで何種類あるやら) が、「ソースコードを読むまでソースのエンコーディングが分からん」というのなら、
というのが私の言いたいことだったりします。 まあ、あちこちの国の人達が書いたコードをまとめてビルドするからそんなことできん!という返事が返ってきそうな気はしているのですが...
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり
それは無理です (スコア:1)
正直言うと、trigraph は既定で off 状態になっていて、#pragma か何かで on にできるのが嬉しいと思うんですけどねぇ。
n2910.pdfにあるIBMの主張によると、「pragmaで文字コードを設定するまで#が使えないので??=を使わないといけないから絶対に困る!」なので、#pragmaでは対処不可能です。大体文字コードによって#のコードポイントが違うなんてふざけたコード体系を作る方にそもそもの問題があると思うし、そんな特殊な環境であればコンパイラの拡張機能として提供し続ければ良いだけだと思うんですけどね。
Re: (スコア:1)
あ〜、そうか、鶏と卵になってしまいますね。 じゃあコンパイラのオプションということで。 ていうか、trigraph が既定で有効だと、
ってのがとってもアレなんですけど...
Re: (スコア:1)
"#"のコードポイントが異なるのは構わないんじゃないでしょうか (e.g. UK-ASCII)。実際、"\"のコードポイントが異なっても気にしていない人々 (== 我々) が世界にはいるわけで。
コードポイントは単なる数値だという認識なのですが違いましたかね?UK-ASCIIについては良く知らないのですが、日本で使われてきた文字コードでは円記号は"\"のグリフを変えただけあって、別のコードポイントに"\"を移動したわけではないですよね。同体系の文字コードであるにも関わらず、"#"という基本的な文字のコードポイントがxであったりyであったりするのは問題ではないかと思ったわけです。
Re:それは無理です (スコア:1)
厳密に衒学的なことを言うと、日本には JIS X0208 があるので、
ではなく、
と書くのが正しい... という主張もできなくはないです (私はそんなコード書きたくはありませんが :-)
UK-ASCII については、私も英国在住なわけではないので実際に彼らがそういうコードを読み書きしていたかどうかは定かではないのですが、100% pure UK-ASCII (正確には BSI 4730?) 的には、
というコードが書かれていたはずです。 これはちょうど JIS X0201 の世界で ¥ が ∖ のコードポイントに対応しているのに似ています。 ISO 646 の national variant な領域に別の「#」があったらエラいことになっていたかも知れませんが、幸い、BSI 4730 には「#」が存在しない (ハズな) ので、我々同様 £ -> # の読み替えですんでいたのでしょう。
一方、EBCDIC な人達の variant はそんなものではすまないでしょう (なんせ日本のメインフレームだけで何種類あるやら) が、「ソースコードを読むまでソースのエンコーディングが分からん」というのなら、
というのが私の言いたいことだったりします。 まあ、あちこちの国の人達が書いたコードをまとめてビルドするからそんなことできん!という返事が返ってきそうな気はしているのですが...