タグ付けされた質問 「type-deduction」

3
C ++では、型情報はいつ逆方向に流れますか?
私はちょうどでステファンT. Lavavejトークを見CppCon 2018に「クラステンプレート引数控除」、上のいくつかの点彼はついでに言います: C ++の型情報は、逆方向に流れることはほとんどありません... 1つまたは2つのケースがあるため、「ほとんど」と言わざるを得ませんでした。 彼がどのケースを参照しているのかを理解しようとしたにもかかわらず、私は何も思いつきませんでした。したがって、質問: C ++ 17標準では、その型情報が逆伝播するように義務付けられているのはどの場合ですか?

2
異なるC ++コンパイラ間での自動型の推測の不一致
だから、私はドット積を実装しようとしています( https://en.wikipedia.org/wiki/Dot_product)を最新のC ++のいくつかのフレーバーで、次のコードを考え出しました: #include <iostream> template<class... Args> auto dot(Args... args) { auto a = [args...](Args...) { return [=](auto... brgs) { static_assert(sizeof...(args) == sizeof...(brgs)); auto v1 = {args...}, i1 = v1.begin(); auto v2 = {brgs...}, i2 = v2.begin(); typename std::common_type<Args...>::type s = 0; while( i1 != v1.end() && i2!= v2.end()) { …

1
オーバーロードされた関数ポインターとその引数を渡す際の不正な型の推定
std::invoke関数がオーバーロードされている場合でも、関数タイプを推定する作業を行うためのラッパーを提供しようとしています。 (私は昨日、可変およびメソッドポインターバージョンについて関連する質問をしました)。 関数に1つの引数がある場合、このコード(C ++ 17)は通常の過負荷状態で期待どおりに機能します。 #include <functional> template <typename ReturnType, typename ... Args> using FunctionType = ReturnType (*)(Args...); template <typename S, typename T> auto Invoke (FunctionType<S, T> func, T arg) { return std::invoke(func, arg); } template <typename S, typename T> auto Invoke (FunctionType<S, T&> func, T & arg) { return …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.