タグ

2014年5月13日のブックマーク (3件)

  • 暗黙のmoveとNRVO - joynote break;

    VS2010(VC10)にて関数で返す値についての扱いをついったーで突っ込まれて実際書いて確かめた時のメモ。 #include <iostream> #include <vector> #include <boost/timer.hpp> struct Test{ std::vector<int> tmp; Test(){ std::cout << "コンストラクタ" << std::endl; } ~Test(){ std::cout << "デストラクタ" << std::endl; } Test(const Test& obj) : tmp( obj.tmp ){ std::cout << "コピーコンストラクタ" << std::endl; } Test(Test&& obj){ std::swap(tmp,obj.tmp); std::cout << "ムーブコンストラクタ" <

    暗黙のmoveとNRVO - joynote break;
    yowano
    yowano 2014/05/13
    NRVOはreturnが複数ある場合などには効かないが、C++11では関数内で宣言された変数が返り値になった場合は暗黙的にmoveされる。ただ、暗黙変換が絡む場合はやはりmoveも起きない。
  • 何が lvalue で何が rvalue なのか - iorate's blog

    こういう記事も必要かもしれないと思いました.内容はタイトルそのままです. はじめに はじめに,と書きましたがこの項は飛ばしても問題ないです. まず "lvalue" とか "rvalue" とかいうものが何についての概念なのかということですが,これらは C++ の "式" の持つ属性 "value category" の値です."式" には他に "型" という属性があります. int i = 0; i; // 式 i の型は int,value category は lvalue 0; // 式 0 の型は int,value category は rvalue 型の決め方は難しくないと思うので (たぶん),この記事では value category の決め方を書きます.以降,"i は int の lvalue である" といった言い方をします. Lvalue,rvalue のイメージ い

    何が lvalue で何が rvalue なのか - iorate's blog
    yowano
    yowano 2014/05/13
    prvalueや、xvalueといった概念についても触れている。pvalueが従来通りのlvalueなら、xvalueはrvalueへの参照のこと。
  • C++のshared_ptrを関数への引数として渡す場合はconst参照で | YOHEI's BLOG

    Channel9にて公開されているC++ and Beyond 2011の動画にて、Andrei Alexandrescu、Scott Meyers、Herb Sutterの三名が、C++ and Beyond 2011の参加者からの質問に回答している。 その中で4:34からの「On shared_ptr performance and correctness」が興味深い。 質問の主旨としては、shared_ptrを関数やメソッドへ渡す場合、const参照で渡すべきかどうかということらしい。つまり、 void func(std::shared_ptr<std::string> s) { ... } int main(int argc, char* argv[]) { std::shared_ptr<std::string> s = ...; func(s); } とするか、const参照に

    yowano
    yowano 2014/05/13
    shared_ptrを関数への引数として渡す場合はconst参照で渡す方が良い。参照カウンタの処理機構が動かない分、速度が速くなるからである。
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy