型推論は万能ではない

最近の静的片付けプログラミング言語でも、変数の型を指定せず、そのリテラル型や返り値などから型を判定する「型推論」という機能があるが、実のところ、これは必ずしも万能とは言い切れない。言語にもよるが、想定していた型とは違う型になってしまうばあいもある。これは多くの場合問題になることはないが、メモリーが絡む部分や特定の場所で問題になることもある。

例えば、C++で以下の変数が割り当てられる。

上記の型は当然ながら、int型になる。この場合は、引数にint型が指定されていれば基本的に問題はない。

落とし穴になりがちなケースとして、以下が当てはまる。

これは、std::stringを想定したくなるが、実際にはmacOS環境ではconst char *となる。もしかしたら環境によっては別の型が割り当てられるかもしれない。

これは、autoを使った型推論をしたからといって、それを過信してはいけないということである。

もちろん、型推論は非常に便利であるので、有効に使っていきたいものである。

ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しております。仕事依頼や相談などについては、Contact Formよりお願いいたします。
スポンサーリンク

フォローする