decltype 相关问题

decltype是一个C ++ 11关键字,可用于查找表达式的类型。

是否允许在初始化程序中为decltyped的变量使用decltype?

被这个问题触发,我想知道是否允许这样做:template T foo(){return T {};} struct bar {}; int main(){bar a = foo (); }编译器I ... ] >>

回答 1 投票 3

使用模板中第一种类型的类成员的类型

搜索该网站后,我找到了此答案,以获取类内成员的类型。基于此,我制作了以下示例,该示例成功编译。 #include #include ] >>

回答 2 投票 1

decltype错误C2440无法从'int *'转换为'int *&'

以下是实际代码的虚构示例:int ** Ptr = 0; decltype(Ptr [0])测试=(int *)0;我收到错误消息:错误C2440:“正在初始化”:无法从“ int *”转换为“ int *&'...

回答 2 投票 4

Confusion:decltype vs std :: function

我对以下符号感到困惑。我想创建一个队列,其中包含函数回调。我认为可以通过以下方式完成此操作:int fun(int); [...] std :: queue&...

回答 1 投票 0

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;

回答 1 投票 2

编译器推断模板参数

template class A {public:A(T&t):t_(t){} T t_; }; int main(){int value; A a(值); //我想要的是:A a(value); ...

回答 4 投票 1

c ++:编译器推断出模板参数?

template class A {public:A(T&t):t_(t){} T t_; }; int main(){int value; A a(值); //我想要的是:A a(value); ...

回答 4 投票 0

c ++ 11带有decltype的尾随返回类型不能按预期方式工作

为什么这会“按预期进行”?我的理解是,这不应该起作用:template auto x(T a,U b)-> decltype(a b?a:b;} int main(...

回答 2 投票 0

SFINAE检查模板参数运算符

您能告诉我为什么以下代码无法编译(在MSVC中“找不到匹配的重载函数”):template struct LinearModel {//具有基本矢量template

回答 1 投票 0

从decltype中删除类成员类型的部分

我遇到了以前从未见过的情况,当时在模板类的成员上使用decltype。我想做一个更好的make_unique,以便更改成员的类型不会导致修复...

回答 1 投票 0

有条件地选择带有decltype()和三元运算符的类型

我有一个文件a.cpp:#include 使用命名空间std; int main(){int a = 5;双b = 4.3; decltype(a> b?a:b)n; cout << typeid(n).name(); }输出...

回答 1 投票 0

decltype未如预期那样初始化变量类型

我有一个文件a.cpp #include 使用命名空间std; int main(){int a = 5;双b = 4.3; decltype(a> b?a:b)n; cout << typeid(n).name(); }输出...

回答 1 投票 -1

非常量指针类型的参数未调用带有常量指针模板类型参数的功能

根据我的理解,const指针函数参数应该能够接受const和非const指针。在后一种情况下,通过指针修改值是非法的。 ...

回答 1 投票 1

如何声明某个结构的成员变量类型的变量?

我想获得这样的代码:struct Order_t {time_point order_time; //其他一些字段};模板 void onTimer(time_point

回答 1 投票 2

为什么带类型实参的运算符()可以在result_of的上下文中应用类型?

据我所知,result_of_t应该是一种类型,它将在表达式求值的末尾。下面代码中的decltype(&foo)产生int类型(*)(int),但(int)...

回答 1 投票 1

为什么“ return(str);” 在C ++中得出的类型不同于“ return str;”?

案例1:#include decltype(auto)fun(){std :: string str =“有趣的”; return str; } int main(){std :: cout << fun()<< std :: endl; }在这里,程序...

回答 1 投票 12

在C ++ 98中实现十进制类型

我想知道是否有办法仅使用C ++ 98功能来实现C ++ 11运算符decltype。我的意思是像template struct decl_type {typedef Func()type; } ...

回答 1 投票 2

为什么将Vector用作Priority Queue的第二个参数?

为什么当priority_queue与单个数据类型(如'int')一起使用时,我们像这样初始化它:priority_queue ;但是,当用一对初始化时,我们添加了第二个参数...

回答 3 投票 -1

派生类从唯一指针指向基类的Decltype

我想执行运行时多态性,还必须知道实际的类型,例如计算某个派生类的实例。这是我到目前为止的内容:标头struct Base {virtual〜Base(); }; ...

回答 1 投票 0

是否可以使函数在C ++中返回类型名称?

我的问题涉及创建C ++函数或类似构造以返回类型名的可能性(与典型的某种类型的对象/引用/指针相反)。如...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.