【C++】 VisualStudio 2010 でのsnprintf関数

snprintfを使っていてgccでは普通にビルド出来てたプログラムをVisualStudio 2010でビルドしたら snprintf 関数が定義されていないってエラーになりました。[E:coldsweats02]
「あ〜、ヘッダファイルのinclude忘れか」
と思いきや、vectorコンテナを使ってるからstdio.hもincludeされてるなぁ。
うん、明示的にincludeしても変わらん。

標準関数なのになぜ〜[E:sweat01]と思って stdio.h を覗いてみると…[E:wobbly]
なんかsnprintfが無いっぽい。

そうなんですなぁ。理由はなぜだか知らんけど、VisualStudioについている標準ライブラリではsnprintfはサポートしていないみたいです。(セキュリティの関係でいくつかの関数が無くなったとは聞いた事があるのやけど、snprintfやからなぁ…理由がわからん)
似たような名前の関数が色々あるのやけど、とりあえずこういう時は処理系依存の関数の定番

_snprintf

を使う事にして解決。
実際には共通ヘッダファイルで

#define snprintf    _snprintf

としましたダ。
ふぅ…[E:sweat02]

Author: kan
初めてプログラムらしきものを作ったのは幼稚園の時。それから約40年経ち、現在はデジタル回路設計から信号処理、機械学習まで幅広い経験を活かしてシステムアーキテクトとして活動中。超並列処理、デジタル回路とソフトウェアのバランス設計が得意分野。 Linux/Mac/Windows使い。 C/C++を主要言語として、Unity、Qtなどのフレームワーク興味あり。UI/UXデザイン、STL拡張など。 音声処理、画像処理、技術コンサルは仕事でも請け負います。 一般ソフトウェア開発プロセス、医療機器ソフトウェア開発プロセス作成も進行中。