- 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してるけどしてはいけないんですよね。
本に書いてありました。
|