我正在使用以下程序:
\n在main函数中,我想打印poll_timer函数的地址。
\n该程序使用 clang 可以成功编译并运行,但使用 GCC 则不能。
\n我在使用 GCC 时收到以下错误
\n"709568706/source.cpp: In function \xe2\x80\x98int main()\xe2\x80\x99:\n709568706/source.cpp:28:32: error: invalid use of member function \xe2\x80\x98static void MessagePoller::poll_timer()\xe2\x80\x99 (did you forget the \xe2\x80\x98()\xe2\x80\x99 ?)\n std::cout << (void*)m_sut->poll_timer << std::endl;\n ~~~~~~~^~~~~~~~~~"\nRun Code Online (Sandbox Code Playgroud)\n#include <iostream>\n#include <memory>\n\nclass MessagePoller\n{\n protected:\n static void poll_timer()\n {\n std::cout << "Poll timer Base called\\n";\n }\n};\n\nclass TestMessagePoller : public MessagePoller\n{\npublic:\n using MessagePoller::poll_timer;\n\n};\ntypedef std::shared_ptr<TestMessagePoller> TestMessagePollerPtr;\n\nint main()\n{ \n TestMessagePollerPtr m_sut;\n m_sut = TestMessagePollerPtr(new TestMessagePoller());\n\n std::cout << "HERE1\\n";\n m_sut->poll_timer();\n std::cout << (void*)m_sut->poll_timer …Run Code Online (Sandbox Code Playgroud)