遇到这种情况,该如何移植到GCC中?这个问题有点棘手。我个人认为出现这种情况是不太应该的,这意味着对类与类之间的关系混淆不清。你需要仔细审视一下这两个类正确的关系是什么。如果是移植库(例如WTL就有多处这样的情形)的过程中遇到这种情况,可以把函数的实现体改为放到类定义体外,如下:
以下是引用片段: class SomeClass; template class Foo { public: void foo(SomeClass& a); void foo2(); }; class SomeClass { public: void some_func() { ... } }; template inline void Foo::foo(SomeClass& a) { a.some_func(); } template inline void Foo::foo2() { SomeClass a; a.some_func(); }
(编辑:aniston)
·2024年9月目录 ·2024年8月目录 ·2024年7月目录 ·2024年6月目录 ·2024年5月目录 ·2024年4月目录 ·2024年3月目录 ·2024年2月目录 ·2024年1月目录 ·2023年12月目录 ·2023年11月目录 ·2023年10月目录 ·2023年9月目录 ·2023年8月目录