c++ - 有没有办法拥有模板的别名并保留类模板参数推导?

标签 c++ c++17 ctad

#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

关于c++ - 有没有办法拥有模板的别名并保留类模板参数推导?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58864886/

相关文章:

c++ - C/C++ 宏扩展与代码生成

c++ - 为什么不再允许从数组的 unique_ptr 创建 shared_ptr?

c++ - 你能初始化 unique_ptr 的 "static const vectors"吗? (C++17 与 GCC 7.3)

c++ - 提供显式演绎指南是否会禁用隐式演绎指南的生成/形成

c++ - 一个类模板是否可以对同一构造函数有多个用户定义的推导指南?

c++ - C++ 编译器如何找到外部变量?

c++ - 有关模板和虚拟功能的问题

c++ - 如何在 C++ 中计算正整数和负整数之间的 IF 语句中的 bool?

c++ - 如何让编译器选择非成员函数重载