- C++相談室 part115 [転載禁止]©2ch.net
820 :デフォルトの名無しさん[sage]:2015/02/09(月) 19:43:05.53 ID:dMqS5RFC - そりゃgccのデフォルトオプションに-funwind-tablesと-fasynchronous-unwind-tablesが付いてるからだ
昔のgccでコンパイルされたC関数は例外投げられたらちゃんとクラッシュしたし、今でも-fno-unwind-tables -fno-asynchronous-unwind-tables付けてコンパイルすりゃやっぱりクラッシュする まして他のコンパイラでコンパイルされたC関数なら同じように例外サポートされてる保証などどこにもない 逆に言えば、全部モダンなgccで例外サポート付きでコンパイルされていることを前提とするなら、例外投げても特に問題はない
|
- C++相談室 part115 [転載禁止]©2ch.net
825 :デフォルトの名無しさん[sage]:2015/02/09(月) 20:18:33.53 ID:dMqS5RFC - >>823
有り得ないケースって何を指してるんだ?
|
- C言語なら俺に聞け(入門編)Part 127 [転載禁止]©2ch.net
910 :デフォルトの名無しさん[sage]:2015/02/09(月) 20:29:33.88 ID:dMqS5RFC - extern外したらただの未初期化のローカル変数になってしまうんですがそれは……
|
- C++相談室 part115 [転載禁止]©2ch.net
828 :デフォルトの名無しさん[sage]:2015/02/09(月) 21:01:52.28 ID:dMqS5RFC - 規格(N4296)の17.6.5.12で「標準Cライブラリは例外を投げないが、例外として、program-supplied関数を呼び出す場合は例外を投げる」ってわざわざ書いてあるのに、有り得ないとまで言い切るのはどうかと思うがね
|
- C++相談室 part115 [転載禁止]©2ch.net
831 :デフォルトの名無しさん[sage]:2015/02/09(月) 21:58:16.40 ID:dMqS5RFC - Cリンケージの関数から例外を投げるケースが有り得ないって言うから、規格の時点でCリンケージと定められているC由来の関数でも例外を投げるケースが考慮されているって例を示すために引っ張ってきただけなんだが
|
- C++相談室 part115 [転載禁止]©2ch.net
837 :デフォルトの名無しさん[sage]:2015/02/09(月) 23:03:16.98 ID:dMqS5RFC - 17.6.2.3 Linkage
2 Whether a name from the C standard library declared with external linkage has extern "C" or extern "C++" linkage is implementation-defined. It is recommended that an implementation use extern "C++" linkage for this purpose. ……すまん、実装依存だったわ。
|
- C言語なら俺に聞け(入門編)Part 127 [転載禁止]©2ch.net
924 :デフォルトの名無しさん[sage]:2015/02/09(月) 23:08:10.11 ID:dMqS5RFC - >>920
後置++って単項*より優先順位高くなかったか? *str++と*(str++)は同じ意味だったと思うぞ ただ、後置++は式の最後に評価されるって決まりがあるから、*str; str++;と同じ動作になるけど。 まあそもそも配列とポインタ変数の区別が付いてないっぽいけど
|
- Visual Studio 2013 SP6©2ch.net
930 :デフォルトの名無しさん[sage]:2015/02/09(月) 23:20:48.02 ID:dMqS5RFC - でもまあバッファオーバーフローのリスクは常にあるのでどっちにしろバッファの長さチェックは必要よ
|