3
CString::Format()はconst std :: stringを受け取ることができますか?CString :: Format()はconst std :: stringを受け取ることができますか?
例:
void some_func(const std::string a_string)
{
CString b_string("World");
CString c_string;
c_string.Format("%s %s!", a_string, b_string);
/* print c_string */
};
ありがとうございます@Zac!だから、constは問題ではないが、実際にはstd :: stringをCString :: Format()のパラメータとして持つと思います。どのようにそれはコンパイルされていますか? – Jonathan
あなたが2,3日以上のプログラミングをしているのなら、@ジョナサンは、うまくいきませんが、たくさんのことがコンパイルされることを知っています。 'CString :: Format'関数はすべての型パラメータを' ... '引数で受け取ります。これは任意の型の値を受け入れます。しかし、値がユーザ定義のクラス型( 'std :: string'を含む)である場合、C++標準では、結果として得られるプログラムの動作は未定義であると言います。形式的には、キャストなしで 'CString'を使うことも定義されていませんが、クラスは特別なトリックを使ってMFCがサポートするコンパイラで動作することを確認します。 –
CStringをサポートする長さになるとは思えず、std :: stringを無視します。 MSだけがそれを行うことができると思います... – Jonathan