decltype是一个C ++ 11关键字,可用于查找表达式的类型。
是否允许在初始化程序中为decltyped的变量使用decltype?
被这个问题触发,我想知道是否允许这样做:template T foo(){return T {};} struct bar {}; int main(){bar a = foo (); }编译器I ... ] >>
搜索该网站后,我找到了此答案,以获取类内成员的类型。基于此,我制作了以下示例,该示例成功编译。 #include #include ] >>
decltype错误C2440无法从'int *'转换为'int *&'
以下是实际代码的虚构示例:int ** Ptr = 0; decltype(Ptr [0])测试=(int *)0;我收到错误消息:错误C2440:“正在初始化”:无法从“ int *”转换为“ int *&'...
Confusion:decltype vs std :: function
我对以下符号感到困惑。我想创建一个队列,其中包含函数回调。我认为可以通过以下方式完成此操作:int fun(int); [...] std :: queue&...
decltype(1,t)应该是左值参考吗? (编译器不同意)
最小代码:int t; static_assert(is_same_v );上面的代码在g ++和clang ++中编译,但在MSVC中失败。 MSVC似乎在想:int t; static_assert(is_same_v ] >>>> Gcc和Clang是正确的。 1, t是comma expression, 逗号表达式结果的类型,值和值类别恰好是第二个操作数E2的类型,值和值类别。 第二个操作数,即t是一个左值,那么decltype将得出decltype。 如果表达式的值类别为左值,则decltype产生T&; 根据标准,T&: (重点是我的) 结果的类型和值就是右边的类型和值操作数结果与它的权利属于同一值类别操作数 , 和[expr.comma]/1 否则,如果[dcl.type.decltype]/1.5是左值,则e是decltype(e),其中T&是类型的T;
template class A {public:A(T&t):t_(t){} T t_; }; int main(){int value; A a(值); //我想要的是:A a(value); ...
template class A {public:A(T&t):t_(t){} T t_; }; int main(){int value; A a(值); //我想要的是:A a(value); ...
c ++ 11带有decltype的尾随返回类型不能按预期方式工作
为什么这会“按预期进行”?我的理解是,这不应该起作用:template auto x(T a,U b)-> decltype(a b?a:b;} int main(...
您能告诉我为什么以下代码无法编译(在MSVC中“找不到匹配的重载函数”):template struct LinearModel {//具有基本矢量template
我遇到了以前从未见过的情况,当时在模板类的成员上使用decltype。我想做一个更好的make_unique,以便更改成员的类型不会导致修复...
我有一个文件a.cpp:#include 使用命名空间std; int main(){int a = 5;双b = 4.3; decltype(a> b?a:b)n; cout << typeid(n).name(); }输出...
我有一个文件a.cpp #include 使用命名空间std; int main(){int a = 5;双b = 4.3; decltype(a> b?a:b)n; cout << typeid(n).name(); }输出...
根据我的理解,const指针函数参数应该能够接受const和非const指针。在后一种情况下,通过指针修改值是非法的。 ...
我想获得这样的代码:struct Order_t {time_point order_time; //其他一些字段};模板 void onTimer(time_point
为什么带类型实参的运算符()可以在result_of的上下文中应用类型?
据我所知,result_of_t应该是一种类型,它将在表达式求值的末尾。下面代码中的decltype(&foo)产生int类型(*)(int),但(int)...
为什么“ return(str);” 在C ++中得出的类型不同于“ return str;”?
案例1:#include decltype(auto)fun(){std :: string str =“有趣的”; return str; } int main(){std :: cout << fun()<< std :: endl; }在这里,程序...
我想知道是否有办法仅使用C ++ 98功能来实现C ++ 11运算符decltype。我的意思是像template struct decl_type {typedef Func()type; } ...
为什么将Vector用作Priority Queue的第二个参数?
为什么当priority_queue与单个数据类型(如'int')一起使用时,我们像这样初始化它:priority_queue ;但是,当用一对初始化时,我们添加了第二个参数...
我想执行运行时多态性,还必须知道实际的类型,例如计算某个派生类的实例。这是我到目前为止的内容:标头struct Base {virtual〜Base(); }; ...
我的问题涉及创建C ++函数或类似构造以返回类型名的可能性(与典型的某种类型的对象/引用/指针相反)。如...