我在模板类中有一个模板类。我可以轻松地内联实现成员函数,但在我的特定情况下,我遇到了前向声明问题,因此被迫在声明后实现它——我意识到我已经忘记了如何去做。
如果这个小例子可以编译(不移动定义内联)我的问题将得到回答:
#include <iostream>
template <typename T, typename V>
struct Outer {
template <int Count>
struct Inner {
void printer() const;
};
};
template <typename T, typename V, int Count>
inline void Outer<T, V>::Inner<Count>::printer() const {
std::cout << "Oh hai. I'm inner<" << Count << ">" << std::endl;
}
int main() {
Outer<int, int>::Inner<3> i;
i.printer();
return 0;
}
编辑:修复了 Stuart 修复的不相关的错别字(以帮助使答案更清晰)