gpt4 book ai didi

c++ - 如何为模板方法创建别名

转载 作者:行者123 更新时间:2023-11-30 01:43:17 26 4
gpt4 key购买 nike

从这里link (1056. 模板别名、成员定义和当前实例化)我意识到,我们可以在模板中创建别名,例如我们可以像下面那样做

template<typename T>
using Vec = std::vector<int>

如何为模板方法创建别名,我在下面尝试过,但它抛出编译错误 error: missing template arguments before '.' token

#include <iostream>
using namespace std;

template <class T> struct A
{
float g(T x){return(x*0.01);}
};

template <class T> using B = A<T>;

int main()
{
B.g<int>(10);
// your code goes here
return 0;
}

我不确定如何为模板方法创建别名,请有人阐明这一点。

最佳答案

你的行没有什么问题,正确的应该是:

B<int>().g(10);

即。您创建一个 B<int>对象并调用函数 g

通过使用 clang 编译代码,它会给出非常精确的错误消息:

tmpl.cpp:13:5: error: use of class template 'B' requires template arguments
B.g<int>(10);
^
tmpl.cpp:9:20: note: template is declared here
template <class T> using B = A<T>;
~~~~~~~~~~~~~~~~~~ ^
tmpl.cpp:13:6: error: cannot use dot operator on a type
B.g<int>(10);
^

关于c++ - 如何为模板方法创建别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38092356/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com