C++ 使用Sun Studio 12移植到Solaris SPARC

C++ 使用Sun Studio 12移植到Solaris SPARC,c++,C++,我正在尝试使用下面的代码编译一个对象文件 //--Begin test.cpp class A; void (A::* f_ptr) (); void test() { A *a; (a->*f_ptr)(); } //-- End test.cpp 对于GNUG++编译器,它能够编译目标文件 $g++-c test.cpp 但对于Solaris 10(SPARC)上的Sun Studio 12,它会输出一个错误 $CC-c test.cpp “test.cpp”,第

我正在尝试使用下面的代码编译一个对象文件

//--Begin test.cpp
class A;

void (A::* f_ptr) ();

void test() {
    A *a;
    (a->*f_ptr)();
}
//-- End test.cpp
对于GNUG++编译器,它能够编译目标文件

$g++-c test.cpp

但对于Solaris 10(SPARC)上的Sun Studio 12,它会输出一个错误

$CC-c test.cpp

“test.cpp”,第7行:错误:在定义类A之前无法通过指向成员函数的指针调用

检测到1个错误

是否有编译器标志来获得Sun Studio C++编译器的构建


目标文件?还有其他解决方法吗?

尝试将
#包括在该文件中。编译器需要知道类A是什么样子。

你会发现有很多东西g++可以让你逃脱sunpro的抱怨,反之亦然

对这类事情要做好准备

格曼的答案在我看来是正确的