官术网_书友最值得收藏!

New rules for type auto-detection from braced initializer list 

C++17 introduced new rules for auto-detection of the initializer list, which complements C++14 rules. The C++17 rule insists that the program is ill-formed if an explicit or partial specialization of std::initializer_list is declared:

#include <iostream>
using namespace std;

template <typename T1, typename T2>
class MyClass {
private:
T1 t1;
T2 t2;
public:
MyClass( T1 t1 = T1(), T2 t2 = T2() ) { }

void printSizeOfDataTypes() {
cout << "\nSize of t1 is " << sizeof ( t1 ) << " bytes." << endl;
cout << "\nSize of t2 is " << sizeof ( t2 ) << " bytes." << endl;
}
};

int main ( ) {

//Until C++14
MyClass<int, double> obj1;
obj1.printSizeOfDataTypes( );

//New syntax in C++17
MyClass obj2( 1, 10.56 );

return 0;
}

The preceding code can be compiled and the output can be viewed with the following commands:

g++-7 main.cpp -std=c++17
./a.out

The output of the preceding program is as follows:

Values in integer vectors are ...
1 2 3 4 5

Values in double vectors are ...
1.5 2.5 3.5
主站蜘蛛池模板: 屯留县| 陈巴尔虎旗| 霍邱县| 新郑市| 宁国市| 商南县| 尉氏县| 翁牛特旗| 普洱| 衡东县| 上栗县| 宁蒗| 衢州市| 肇庆市| 固原市| 锦州市| 临湘市| 屏东县| 桐城市| 万盛区| 中西区| 高阳县| 屯昌县| 锦州市| 兴国县| 凤台县| 塔河县| 藁城市| 页游| 平顺县| 柯坪县| 锦州市| 德令哈市| 东乡| 天祝| 道孚县| 赣州市| 新余市| 满城县| 玉山县| 绥德县|