C++ でインライン化できない関数を表示する必要があります。
これを確認するために、フラグを-Winline
設定しました。
再帰関数を使用すると、インライン化できない関数を生成できます。
しかし、継承と「仮想」キーワードでも同じことを試みます。しかし、何かをインライン化できないとコンパイラに訴えさせることはできません。
このトピックはすでに多く取り上げられていることを知っています。しかし、実際の例が見つかりませんでした。私のコンパイラは「賢い」ですか:-)
私はこれでそれを試しました:
class virt1
{
public:
virt1(){};
inline virtual int virtFunc(int a){ return a*a; };
virtual ~virt1(){};
};
class virt2 : public virt1
{
public:
virt2(){};
inline virtual int virtFunc(int a){ return a+a;};
virtual ~virt2(){};
};
void testVirtFunc(virt2 &obj)
{
std::cout << obj.virtFunc(2);
}