9.4.2 向前引用
如果猜想编译器执行内联函数时将会做什么事情,就可能会糊涂地认为限制比实际存在的要多。特别当一个内联函数在类中向前引用一个还没有声明的函数时,看起来好像编译器不能处理。
函数f()调用g(),但此时还没有声明g()。这也能正常工作,因为C++语言规定:只有在类声明结束后,其中的内联函数才会被计算。
当然,如果g()反过来调用f(),就会产生递归调用,这对于编译器来说太复杂而不能执行内联。(应该在f()和g()中做一些测试,使其中一个有界可以退出,否则,递归将是无穷无尽的。)