有没有办法拥有模板的别名并保留 Class 模板参数推导?

Is there a way to have an alias of a template and preserve Class Template Argument Deduction?

#include <vector>

template<class T>
using vec = std::vector<T>;

int main()
{
    std::vector a{2,3};
    // vec b{2,3}; // not going to work
}

我们还被迫使用宏吗?使用它们有很多缺点...

这是 CTAD 的一个已知问题 has been fixed in C++20

Are we still forced to use macros?

没有。如果您想要 CTAD

,我建议您使用 std::vector