コードにハードコードされた文字列(ファイル マスクとして使用する必要があります) がありますが、コンパイラは常に "??-" シーケンスを "~" に変更します。次に例を示します。
const wchar_t textW[] = L"test-??-??-??.txt";
testW は "test-~~??.txt" (引用符なし) になります。
非 Unicode 文字列でも同じことが起こります。
const char textA[] = "test-????-??-??.txt";
textA は "test-??~~??.txt" (引用符なし) になります。
私のコンパイラは Microsoft Visual C++ 2008 です。
Visual Studio 2013 でこれを試したところ、実行時の文字列は正しく、インテリセンスはアプリをトレースしているときにツールヒントに正しい値を表示しますが、... しかし、書き込みモード (アプリが実行されていないとき) intellisense は、ツールヒントにチルダ付きで誤った値を表示します。