5

タイプTがあるとします。

typedef ... T;

そして、私はこれらの機能を持っています:

T f11();
T& f12();
T&& f13();
const T f21();
const T& f22();
const T&& f23();

そして、次のように呼び出します。

auto x11 = f11();
auto x12 = f12();
auto x13 = f13();
auto x21 = f21();
auto x22 = f22();
auto x23 = f23();

C ++ 11標準のどのセクション/節から、x11..x23の同等の非自動宣言を推測できますか?

4

1 に答える 1

5

§7.1.6.4自動指定子にあります。関数の戻り型の例では、テンプレート引数の推定の規則が適用されます。

標準から関連する例をパラクォートします。

const auto &i = expr;

のタイプは、次の発明された関数テンプレートiの呼び出しでのパラメーターXの推定タイプです。f(expr)

template <class AUTO> void f(const AUTO& X);

したがって、あなたの例では、すべての変数のタイプはx11としてx23推定されTます。

于 2012-09-03T05:36:54.370 に答える