IOKit ベースのカーネル エクステンションをコンパイルするとき、C++ コンパイラはキーワードを認識できませんdecltype
。
int f = 123;
int (*f_ptr)() = 0;
f_ptr = (decltype(f_ptr)) f;
上記のコードでコンパイラが失敗した理由: Use of undeclared identifier 'decltype'
。一方auto
、キーワードは期待どおりに機能します。
ただし、C++ ユーザー モード アプリケーションでまったく同じコードをコンパイルすると、正常に動作します。
それはなぜですか?