Я написал фрагмент кода ниже:
#include <string>
int main() {
std::string str = "test";
(str == "tes") ? str.replace(0, 1, "T") : 0;
}
К сожалению, это вызывает logic_error
:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct NULL not valid
Я хочу знать причину, по которой компилятор создает строковый объект?