例如,
#include <algorithm>
#include <iostream>
#include <numeric>
#include <vector>
int main() {
std::vector<int> empty{};
std::reverse(empty.begin(), empty.end());
std::cout << "Sum: " << std::accumulate(empty.cbegin(), empty.cend(), 0) << std::endl;
std::cout << empty.size();
}
按我的期望构建并运行:
sum: 0
size: 0
我能否保证这种行为在任何符合标准的编译器上都会发生?