今天我在一个程序中遇到了一个有趣的情况,我无意中将一个无符号整数分配给了一个std :: string.VisualStudio C++编译器没有给出任何关于它的警告或错误,但我碰巧在运行项目时发现了错误,它给了我字符串的垃圾字符.
这就是代码的样子:
std::string my_string("");
unsigned int my_number = 1234;
my_string = my_number;
Run Code Online (Sandbox Code Playgroud)
以下代码也编译好:
std::string my_string("");
unsigned int my_number = 1234;
my_string.operator=(my_number);
Run Code Online (Sandbox Code Playgroud)
以下结果导致错误:
unsigned int my_number = 1234;
std::string my_string(my_number);
Run Code Online (Sandbox Code Playgroud)
到底是怎么回事?为什么编译器会使用最后一个代码块停止构建,但是让前两个代码块构建?
我正在尝试编写一个自动测试脚本来测试我创建的MySQL事件,我想知道是否有办法执行某种命令来强制事件立即执行.事件设置为每天午夜运行,但我不希望自动测试脚本必须等待事件触发.
我能想到的一种方法是改变事件以使其在未来5秒内执行一次,但我想知道是否有更优雅的方法来执行它.