C++相談室 part31
■ このスレッドは過去ログ倉庫に格納されています
0018デフォルトの名無しさん
NGNGg++-2.95 (gcc 2.95.4 20011002 Debian)ではエラーなしでコンパイルされるけれど、
g++-3.2 (gcc 3.2.3 Debian) では最後につけたエラーになります。
これは、どうなるのが正しいのでしょうか?
(ちなみに TestBuilder というツールで発生するコンパイルエラーのエッセンスです。)
----- tst.cpp
#include <iostream>
using namespace std;
typedef int PLI_INT32;
typedef struct t_vc_record { PLI_INT32 vc_reason; } s_vc_record, *p_vc_record;
extern "C" int chpiPliValueCBF(p_vc_record vcRecordP);
extern "C" { typedef int chpiPliValueCBFT(); }
void acc_vcl_delete (int * object_p, PLI_INT32 (*)(p_vc_record), char *user_data, PLI_INT32 vcl_flags);
int main() {
char* ch;
acc_vcl_delete(NULL, (chpiPliValueCBFT*)chpiPliValueCBF, ch, 2); }
int chpiPliValueCBF(p_vc_record vcRecordP) { cout << "chpiPliValueCBF" << endl; }
---- エラーメッセージ
g++ -c -o tst.o tst.cpp
tst.cpp: function 内の `int main()':
tst.cpp:18: error: invalid conversion from `int (*)()' to `PLI_INT32
(*)(t_vc_record*)'
■ このスレッドは過去ログ倉庫に格納されています