Dev*_*mex 5 c++ templates c++11
我无法理解https://github.com/hmenke/boost_matheval/blob/master/src/qi/parser.hpp#L43 中的这种语法
struct bar {
bar() {}
};
template<typename _T>
class foo {
public:
foo() {}
};
...
foo<bar()> fb;
...
Run Code Online (Sandbox Code Playgroud)
模板 foo 的特化中 _T 的类型是什么?如何在 foo 中使用 _T?
这是函数的类型。当你声明
bar function();
Run Code Online (Sandbox Code Playgroud)
即,一个不带参数并返回 a 的函数bar,然后function有一个类型,它是bar(). _T代表它。好像你有一个别名
using _T = bar();
Run Code Online (Sandbox Code Playgroud)
或者
typedef bar _T();
Run Code Online (Sandbox Code Playgroud)
这不是一种罕见的类型。例如,函数类型是std::function接受的。如何使用它取决于类模板的目的,以及它是如何潜在地专门化的。