请注意以下std::get
函数语法:
std::tuple <int, double, long &, const char *> bar(18, 6.5, 12, "Hello!");
cout << std::get<2>(bar); // Print the tuple’s third element.
我不熟悉这种语法...
这是使用模板语法传递参数吗?
如果是,请提供一个简单示例说明
std::get
的工作方式。 最佳答案
您可以像在其他参数中一样将东西作为模板参数中的参数传递,您可能熟悉像这样将类型作为参数传递:
template<typename T>
void f() {}
并调用以下函数:
f<int>()
。除了扩展为具体类型外,这是相同的概念。
例:
#include <iostream>
template<size_t N>
void f() {
std::cout << N << '\n';
}
int main() {
f<10>();
f<11>();
f<100>();
}
输出:
10
11
100
因此,您传递的是指定类型的编译时值,而不是传递类型。
关于c++ - 对参数使用模板语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18244658/