2009-07-16 2 views
0

Я пытаюсь скомпилировать объектный файл, используя следующий код.Портирование на Solaris SPARC с помощью Sun Studio 12

//--Begin test.cpp 
class A; 

void (A::* f_ptr)(); 

void test() { 
    A *a; 
    (a->*f_ptr)(); 
} 
//-- End test.cpp 

Для компилятора GNU g ++ он может скомпилировать объектный файл.

$ g++ -c test.cpp

Но для Sun Studio 12 на Solaris 10 (SPARC), он выдает сообщение об ошибке.

$ CC -c test.cpp

"test.cpp", line 7: Error: Cannot call through pointer to member function before defining class A.

1 Error(s) detected.

Есть компилятор флаги, чтобы получить компилятор Sun Studio C++ для создания объектный файл? Есть ли другой способ?

ответ

2

В этом файле - #include <A.h>. Компилятор должен знать, что выглядит class A.

0

Вы обнаружите, что есть много вещей, которые g ++ позволяет вам уйти с тем, что sunpro будет жаловаться, и наоборот.

Будьте готовы к подобным вещам.

Ответ GMan выглядит правильно для меня.

Смежные вопросы