Tuesday 17 March 2020

C++ std::move

LLVM書きかえ中ですが、いろいろ変わってる。

  &&で受けてるところに書く値の型が違うと言われる

うーん、他に使っているところを調べて... で、わかったのが

  std::move(star_DS.getAttributes())

と書くと良いらしい。なにこれ? で、ぐぐるわけですが、転送とかいうBrain Damagedな話らしい。いや、

  とあるコンパイラではC++11にしただけで1.x倍になったという事例もある

とかある。そうですか。xvalue とか prvalue とかかんべんしてください。

https://proc-cpuinfo.fixstars.com/2016/03/c-html/

Java はこの手の話はJITが片付けてくれるので出てこない。

あと、

  std::unique_ptr<CorrectionCandidateCallback> clone() override {
    return std::make_unique<StatementFilterCCC>(*this);
  }

とかもあって「overrideでっていつできたんだよ」ってな感じで C++11 勉強会みたいになってます。

No comments: