Lang/C++/extern C
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#topicpath
/////////////////////////////////////////////////////////...
* 目次 [#sb289273]
#contents();
/////////////////////////////////////////////////////////...
* extern "C" について [#ea3f607f]
- C++ から C で書かれた関数を呼ぶ際、又は C から C++ で書...
/////////////////////////////////////////////////////////...
* extern "C" する際の注意点 [#r43bfa4b]
//=======================================================...
** extern "C" すると、引数の型の一致が検査されない [#re95...
//=======================================================...
** C++ の関数は例外を C 関数側に漏らしてはならない [#ddba...
- C++ 関数が throw した例外が C 関数側に到達した場合の動...
//-------------------------------------------------------...
*** C++ が例外を throw するケースには、以下も含まれる [#p...
- new 演算子が std::bad_alloc 例外を throw する
- std::vector のメンバ関数 at が std::out_of_range 例外を...
//-------------------------------------------------------...
*** 例外を C 側に漏らさない為に [#r40cfd24]
- 以下のように、C++関数全体を try/catch でくくっておくの...
extern "C" {
int func() try
{
// 例外を throw するような処理
return 0;
} catch (...) {
return 1;
}
} // extern "C"
//=======================================================...
** 関数ポインタが使われる場合 [#n0586e6c]
- C++ から C関数へ関数ポインタを渡す場合、C関数に関数ポイ...
//-------------------------------------------------------...
*** 例外を C 側に漏らさない為に [#q593de25]
- このようなケースで例外の throw を抑止するには、コンパイ...
終了行:
#topicpath
/////////////////////////////////////////////////////////...
* 目次 [#sb289273]
#contents();
/////////////////////////////////////////////////////////...
* extern "C" について [#ea3f607f]
- C++ から C で書かれた関数を呼ぶ際、又は C から C++ で書...
/////////////////////////////////////////////////////////...
* extern "C" する際の注意点 [#r43bfa4b]
//=======================================================...
** extern "C" すると、引数の型の一致が検査されない [#re95...
//=======================================================...
** C++ の関数は例外を C 関数側に漏らしてはならない [#ddba...
- C++ 関数が throw した例外が C 関数側に到達した場合の動...
//-------------------------------------------------------...
*** C++ が例外を throw するケースには、以下も含まれる [#p...
- new 演算子が std::bad_alloc 例外を throw する
- std::vector のメンバ関数 at が std::out_of_range 例外を...
//-------------------------------------------------------...
*** 例外を C 側に漏らさない為に [#r40cfd24]
- 以下のように、C++関数全体を try/catch でくくっておくの...
extern "C" {
int func() try
{
// 例外を throw するような処理
return 0;
} catch (...) {
return 1;
}
} // extern "C"
//=======================================================...
** 関数ポインタが使われる場合 [#n0586e6c]
- C++ から C関数へ関数ポインタを渡す場合、C関数に関数ポイ...
//-------------------------------------------------------...
*** 例外を C 側に漏らさない為に [#q593de25]
- このようなケースで例外の throw を抑止するには、コンパイ...
ページ名: