将来的C ++标准是否支持“使用auto声明类型模板参数”

kk9*_*527 1 c++

当前的C ++标准已经支持“使用auto声明非类型模板参数”吗?

问题:将来的C ++标准是否支持“使用auto声明类型模板参数”

一旦支持,STL容器可以更改为:

template<auto T>
class vector {

}
...
int main () {
    vector<auto> v = {1 ,2 3};
    vector<auto> v = {{1},{2},{3}}; // 2d vector.
}

Run Code Online (Sandbox Code Playgroud)

这项更改确实可以节省很多打字。但是,这会使前端更加复杂。我不确定是否可行。

谢谢

Nat*_*ica 13

我看不到vector<auto> v = {1 ,2 3};被添加到C ++中。这样做的原因是因为C ++ 17已经具有类模板参数推导(CTAD)。这样您就可以像

std::vector v = {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)

并且v将得到推导出一个std::vector<int>