const char*
後者の場合、 からへの暗黙的な変換がstd::string
機能しないのはなぜですか? 可能であれば、C++ 標準への参照をリンクしてください。
バリエーション 1:
struct Foo {
Foo(const char* a) {}
};
int main() {
// works well for a "const char*" accepting constructor
Foo* foo = new Foo[1] { "a" };
}
バリアント 2:
struct Foo {
Foo(std::string a) {}
};
int main() {
// could not convert from "const char*" to "Foo"
Foo* foo = new Foo[1] { "a" };
}