Mak*_*n K 3 c++ pointers temporary memory-address
我用 gcc 和 clang-O1和-std=c++20标志编译了以下代码,它似乎按预期工作。
#include <iostream>
struct S { int i; };
template<typename T>
T *get_address(T&& t) { return &t; }
void print_value_from_temporary(S *const s) {
std::cout << s->i << '\n';
s->i = 0;
std::cout << s->i << '\n';
}
int main() {
print_value_from_temporary(get_address(S{42}));
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:这s->i = 0;条线是未定义的行为吗?
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |