次のようなコードを実行したとき、printf()の引数リストで生成したstd::stringのデストラクタが呼び出されるのはprintfの実行が終わってから、ということでよかったでしょうか?

適当なclassを実装して試せばそのコンパイラでの動作は確かめられますが、規格で定義されているのかが気になりました。

int main(int argc, char *argv[])
{
    printf("%s %s\n", std::string("A").c_str(),  std::string("B").c_str());

    return 0;
}