fork download
  1. // C++
  2. #include <memory>
  3. #include <stdio.h>
  4.  
  5. void println(const std::string& out) {
  6. printf("%s\n", out.c_str());
  7. fflush(stdout);
  8. }
  9.  
  10. int main() {
  11. // std::unique_ptr<string> hoge(new string("hoge")); と同義です。
  12. // 型名を 2 度書くのを避け、コード上から new をなくすことができます。
  13. auto hoge = std::make_unique<std::string>("hoge");
  14. auto piyo = std::make_unique<std::string>("piyo");
  15. println(*hoge); // => hoge
  16. println(*piyo); // => piyo
  17. hoge = std::move(piyo); // 変数 piyo にあるポインタの所有権は変数 hoge に移ります。
  18. println(*hoge); // => piyo
  19. println(*piyo); // 変数 piyo は初期化されてしまっているため、メモリアクセス違反が起きます。
  20. }
Runtime error #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
hoge
piyo
piyo