讓我們來看看下面的下面的代碼C++ 14種標準說:什麼關於汽車的參數類型
#include <iostream>
class Test
{
private:
int x;
public:
Test(int _x) :
x(_x)
{
std::cout << "Im being constructed" << std::endl;
}
int getx()
{
return this->x;
}
friend std::ostream& operator<<(std::ostream& os, Test& other)
{
os << other.getx();
return os;
}
};
auto func(auto x)
{
std::cout << x << std::endl;
return x.getx();
}
int main()
{
auto y = func(20);
return 0;
}
編譯器如何決定是否(20)應該是一個int或測試對象? Test的構造函數並不明確,因此標準對此有何評論?
1.'auto'作爲參數是概念ts的一部分。 2.'x'被推斷爲'int',而不是'Test' –
[gcc接受自動參數,即使它是概念的一部分 - 精簡版](http://stackoverflow.com/questions/30665506/auto-not-allowed -in-function-prototype-with-clang/30665723#30665723)雖然如果你使用'-pedantic',gcc會警告這不是iso C++。 –
好的,謝謝你,所以標準允許使用lambdas自動運行,但不是函數,我是否正確? – Mamma