トップページ > プログラム > 2014年06月16日 > 9KjdQk06

書き込み順位&時間帯一覧

1 位/206 ID中時間01234567891011121314151617181920212223Total
書き込み数00000001213221000000000012



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part113
【初心者歓迎】C/C++室 Ver.91【環境依存OK】

書き込みレス一覧

C++相談室 part113
82 :デフォルトの名無しさん[sage]:2014/06/16(月) 07:59:02.53 ID:9KjdQk06
#include <functional>

#include <iostream>

class A{

public:

int * t;

int operator()(int x){
return x+*t;
}};

int main(){
A b;

b.t=new int;

*(b.t)=1;

std::function<int(int)> f{b};

std::cout<<f(1);

*(b.t)=2;

std::cout<<f(1);

delete b.t;return 0;}

std::functionで俗に言う環境変数というのを変更したい場合こうする以外に軽い方法ありますか?
C++相談室 part113
83 :デフォルトの名無しさん[sage]:2014/06/16(月) 08:23:20.74 ID:9KjdQk06
#include <functional>
#include <iostream>
class A{
public:
 int * t;
 int operator()(int x){
  return x+*t;
 }
};
int main(){
 A b;
 b.t=new int;
 *(b.t)=1;
 std::function<int(int)> f{b};
 std::cout<<f(1);
 *(b.t)=2;
 std::cout<<f(1);
 delete b.t;return 0;
}
std::functionで俗に言う環境変数というのを変更したい場合こうする以外に軽い方法ありますか?
C++相談室 part113
85 :デフォルトの名無しさん[sage]:2014/06/16(月) 08:39:31.30 ID:9KjdQk06
>>84
別の人です!(^^)!
C++相談室 part113
87 :デフォルトの名無しさん[sage]:2014/06/16(月) 09:01:00.61 ID:9KjdQk06
ラムダ式でいうと[]の中の変数です。
>>83でいうと*tのことです。
C++相談室 part113
89 :デフォルトの名無しさん[sage]:2014/06/16(月) 10:11:51.55 ID:9KjdQk06
#include <functional>
#include <iostream>
class A{
public:
int a;
std::function<int(int)> f;
A():a{1},f{[this](int x){return this->a+x;}} {
}
std::function<int(int)> c(int i){
a=i;
return f;
}
};
int main(){
A a;
std::cout<<a.c(1)(2);
std::cout<<a.c(2)(2);
return 0;
}
こうゆうことですか?
【初心者歓迎】C/C++室 Ver.91【環境依存OK】
332 :デフォルトの名無しさん[sage]:2014/06/16(月) 10:32:46.97 ID:9KjdQk06
http://d.hatena.ne.jp/gintenlabo/20131211/1386771626
この記事の下の方の人の言っていることは本当ですか?
shared_ptrを使って管理してほしいときはコンストラクターを隠した方が
正解ですか?隠さない方がいいですか?
C++相談室 part113
93 :デフォルトの名無しさん[sage]:2014/06/16(月) 10:59:34.96 ID:9KjdQk06
俗に言うint(int)型の関数列をオブジェクトの生成コストを小さく実装する意図です。
C++相談室 part113
95 :デフォルトの名無しさん[sage]:2014/06/16(月) 11:24:13.03 ID:9KjdQk06
スコープがmainから離れるとfが使えなるので駄目です。
C++相談室 part113
97 :デフォルトの名無しさん[sage]:2014/06/16(月) 11:36:45.63 ID:9KjdQk06
よくわからないのでまた来ます。
ありがとうございました。
【初心者歓迎】C/C++室 Ver.91【環境依存OK】
334 :デフォルトの名無しさん[sage]:2014/06/16(月) 12:06:47.50 ID:9KjdQk06
create_helperはincomplete typeを包含しているって怒られましたし継承だとprivate ctorが呼べない気がします.
【初心者歓迎】C/C++室 Ver.91【環境依存OK】
336 :デフォルトの名無しさん[sage]:2014/06/16(月) 12:18:19.89 ID:9KjdQk06
そうなんですか?
オーバーヘッドはmake_shared使う利点を覆い隠すほどではないというのなら
使ってもいいですよ。
なお後半の質問にもお答えください。
【初心者歓迎】C/C++室 Ver.91【環境依存OK】
338 :デフォルトの名無しさん[sage]:2014/06/16(月) 13:16:51.72 ID:9KjdQk06
pをmoveしてるけどしてはいけないんですよね。
本に書いてありました。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。