您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關C++中怎么使用auto避免多余的類型名重復,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Simple repetition is tedious and error-prone.
簡單的重復多余且易錯。
When you use auto, the name of the declared entity is in a fixed position in the declaration, increasing readability.
當你使用auto的時候,被定義實體的名稱會出現在固定的位置,這樣可以增加可讀性。
In a template function declaration the return type can be a member type.
在模板函數定義中,返回值可以是成員類型。
Consider:
考慮以下代碼:
auto p = v.begin(); // vector<int>::iterator
auto h = t.future();
auto q = make_unique<int[]>(s);
auto f = [](int x){ return x + 10; };
In each case, we save writing a longish, hard-to-remember type that the compiler already knows but a programmer could get wrong.
無論哪種情況,我們都不必編寫又長、類型又難記的類型信息。其實這些信息編譯器已經知道,但程序員還是會弄錯。
Example(示例)
template<class T>
auto Container<T>::first() -> Iterator; // Container<T>::Iterator
Avoid auto for initializer lists and in cases where you know exactly which type you want and where an initializer might require conversion.
對于你確切地知道所需類型但初始化器可能需要轉換的情況,應避免為初始化列表使用auto。
Example(示例)
auto lst = { 1, 2, 3 }; // lst is an initializer list
auto x{1}; // x is an int (in C++17; initializer_list in C++11)
When concepts become available, we can (and should) be more specific about the type we are deducing:
在concepts可以之后,我們可以(也應該)更加明確我們推斷的類型。
// ...
ForwardIterator p = algo(x, y, z);
示例(C++17)
auto [ quotient, remainder ] = div(123456, 73); // break out the members of the div_t result
Flag redundant repetition of type names in a declaration.
標記在聲明時發生的多余的類型名稱重復。
看完上述內容,你們對C++中怎么使用auto避免多余的類型名重復有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。