型と初期値を操作するマクロがいくつかあります。初期値vIniをにキャストする必要がありますvType(vIniは常に に変換可能でvType、同じ型の場合もあります)。vIniも空である可能性があり、その場合は初期化されてvTypeいないか、デフォルトで初期化されている必要があります。結果はテンプレート化された関数に渡されます。
要するに、
template<typename T> void foo(const T& o);
foo(vType(vIni));
foo(vType());
コンパイルする必要があります。
私はすでにそれを発見したfoo(unsigned int())かfoo(int*())、コンパイルしないことを発見しましたが、typedef で回避できます。
失敗する他のケース (スペースとポインターを含む組み込み型以外) は何ですか?