- C++相談室 part114
578 :デフォルトの名無しさん[]:2014/11/21(金) 06:42:46.17 ID:bT+kokin - --------------------------------------------
template<typename Container, typename Index> decltype(auto) authAndAccess(Container&& c, Index i) { authenticateUser(); return std::forward<Container>(c)[i]; } --------------------------------------------- std::deque<std::string> makeStringDeque(); // factory function auto s = authAndAccess(makeStringDeque(), 5); --------------------------------------------- このC++14のコードでsの型が&std::stringにならないでstd::stringになるのは なぜですか?authAndAccessの第一引数にlvalueを入れると参照になるらしいです。
|
- C++相談室 part114
585 :デフォルトの名無しさん[]:2014/11/21(金) 12:34:49.08 ID:bT+kokin - >>581
ありがとうございます。 authAndAccess(makeStringDeque(), 5)の型はstd::string&なのですが、 typeid((makeStringDeque(), 5))::name()はSsでsの型と同じだったのですが なぜでしょうか。
|
- C++相談室 part114
588 :デフォルトの名無しさん[]:2014/11/21(金) 13:09:41.61 ID:bT+kokin - ありがとうございます。
boost使ってもう一回調べてみます。
|
- C++相談室 part114
589 :デフォルトの名無しさん[]:2014/11/21(金) 13:13:19.77 ID:bT+kokin - >>579
すみませんでした、二度とこのスレには書き込みません。
|