Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在C++中,typename应该在const之前还是之后?

在C++中,typename应该在const之前还是之后?
EN

Stack Overflow用户
提问于 2017-05-10 17:04:13
回答 3查看 3.3K关注 0票数 3

我应该这样写吗:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
template<class T> class Foo {
    typename const T* x;
};

或者:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
template<class T> class Foo {
    const typename T* x;
};
EN

回答 3

Stack Overflow用户

发布于 2017-05-10 17:17:34

typename需要与您尝试获取的类型相匹配。例如,如果您有

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
template <typename T>
void foo(T& t)
{
    typename const T::iterator bar = t.begin();
}

int main()
{
    std::vector<int> bar{1,2,3}
    foo(bar);
}

您将得到一个针对typename const T::const_iterator bar = t.begin();的编译器错误,如下所示

应在“const”之前使用嵌套名称说明符

Where as

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const typename T::iterator bar = t.begin();

工作得很好。

有关templatetypename需要出现的时间、位置和原因的全面解释,请参阅:Where and why do I have to put the "template" and "typename" keywords?

票数 4
EN

Stack Overflow用户

发布于 2017-05-10 17:17:13

typename不是这样使用的,所以这两种情况都是无效的,应该会产生编译错误,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
main.cpp:4:20: error: expected a qualified name after 'typename'
    const typename T* x;
                   ^

在这里,您需要像T::myType这样的东西才能继续运行。

或者甚至是这样,更糟糕的是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
main.cpp:4:14: error: expected a qualified name after 'typename'
    typename const T* x;
             ^
main.cpp:4:14: error: expected member name or ';' after declaration specifiers

expected a qualified name after 'typename'中的相关例子。

引入关键字typename是为了指定后面的标识符是一个类型

更多信息请访问:Officially, what is typename for?

票数 3
EN

Stack Overflow用户

发布于 2017-05-10 17:18:08

在这里使用typename没有任何意义。

如果要访问T::type这样的别名类型,则必须使用,因为在这种类型中,不能在typenameT::type之间使用const

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const typename T::type * x;  // ok
typename T::type const * x;  // ok
typename const T::type * x;  // error
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43898730

复制
相关文章
React技巧之状态更新
原文链接:https://bobbyhadz.com/blog/react-update-state-when-props-change[1]
chuckQu
2022/08/19
9070
React技巧之状态更新
react源码解析12.状态更新流程
我们重点看下重点看下this.setState和this.forceUpdate,hook在第13章讲
长腿程序员165858
2023/01/03
1K0
react源码解析12.状态更新流程
我们重点看下重点看下this.setState和this.forceUpdate,hook在第13章讲
全栈潇晨
2021/06/15
1.1K0
react源码解析12.状态更新流程
我们重点看下重点看下this.setState和this.forceUpdate,hook在第13章讲
zz1998
2021/12/15
8320
react源码解析12.状态更新流程
我们重点看下重点看下this.setState和this.forceUpdate,hook在第13章讲
zz1998
2021/12/03
9630
关于React中状态保存的研究
在使用react搭配react-router做应用的时候,你可能遇到这样的问题,当我从第一个页面过渡到第二个页面,然后返回之后,发现之前的页面的状态全部不见了,即回到了初始的状态。 这点在页面存在多个TAB页或者多条件筛选的时候体验会更加明显,这时候我又不得不点击我之前选择的页签,重新选择筛选条件,然后再进行搜索。因此,在这种情况下,保存之前的状态显得尤为亟待解决,下面是自己实践出来的几种方法,做一下分享,同时希望和各位一起探讨,看能不能有什么更好的办法。 代码:github 解决方案一:子路由方式 //
糊糊糊糊糊了
2018/05/09
4.3K0
关于React中状态保存的研究
React 回忆录(四)React 中的状态管理
大家好,又见面了,我是你们的朋友全栈君。 Hi 各位,欢迎来到 React 回忆录!? 在上一章中,我介绍了使用 React 渲染界面元素的方法,以及在这个过程中蕴含的“组件化”想想。在本章中,我们将
全栈程序员站长
2022/07/21
2.4K0
【React】377- 实现 React 中的状态自动保存
移动端中,用户访问了一个列表页,上拉浏览列表页的过程中,随着滚动高度逐渐增加,数据也将采用触底分页加载的形式逐步增加,列表页浏览到某个位置,用户看到了感兴趣的项目,点击查看其详情,进入详情页,从详情页退回列表页时,需要停留在离开列表页时的浏览位置上
pingan8787
2019/10/15
2.9K0
【React】377- 实现 React 中的状态自动保存
react-navigation 使用笔记 持续更新中
React-Navigation是目前React-Native官方推荐的导航组件,代替了原用的Navigator。最近开始接触,做个笔记
木子墨
2018/12/12
7830
React报错之无法在未挂载的组件上执行React状态更新
原文链接:https://bobbyhadz.com/blog/react-cant-perform-react-state-update-on-unmounted-component[1]
chuckQu
2022/08/19
2.3K0
React技巧1(状态组件与无状态组件的使用)
本教程总共5篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1.React 技巧1(状态组件与无状态组件的使用) ----2018.01.04 2.React 技巧2(避免无意义的父节点)----2018.01.05 3.React 技巧3(如何优雅的渲染一个List)----2018.01.06 4.React 技巧4(如何处理List里面的Item)----2018.01.07 5.React 技巧5(TodoList实现)----2018.01.08 开发环境
前端人人
2018/04/11
1.8K0
React技巧1(状态组件与无状态组件的使用)
使用webpack实现react的热更新
app 中自然就是源代码,app/index.js是最外层的js文件。因为涉及到是热更新,所以当然是在我们的 webpack.dev.js 文件下操作。
Nealyang
2019/09/29
2.9K0
使用webpack实现react的热更新
Flutter更新showDialog以及showModalBottomSheet中的状态中的内容
很多人在使用 showDialog 或者 showModalBottomSheet 的时候,都会遇到这个问题:通过 setState 方法无法更新当前的dialog。
拉维
2019/10/14
9.1K1
React源码分析与实现(二):状态、属性更新 -> setState
setState的源码比较简单,而在执行更新的过程比较复杂。我们直接跟着源码一点一点屡清楚。
Nealyang
2019/09/29
1.2K0
React源码分析与实现(二):状态、属性更新 -> setState
React篇(025)-我们为什么不能直接更新状态?
正确方法应该是使用 setState( ) 方法。它调度组件状态对象的更新。当状态更改时,组件将会重新渲染。
齐丶先丶森
2022/05/12
1.6K0
React源码分析8-状态更新的优先级机制
实现这一目的的本质就是在低优先级任务执行时,有更高优先级任务进来的话,可以打断低优先级任务的执行。
goClient1992
2022/10/13
1.2K0
React hooks 最佳实践【更新中】
导语 随着目前需求更新的节奏越来越快,我们目前更多时候原因使用 function component 来代替类的写法,在 hooks 推出之后,我们也可以完全使用 function component 来代替类的写法;但是俗话说的好,没有什么东西是十全十美的,在本次整理总结 hooks 库的过程中,有体验到 hooks 带来的体验提升,同时也存在对比类生命周期写法中不足的地方。 01 React hooks的思想 首先对于原先的类组件而言,最好的思想是封装,我们使用的constructor、componen
用户1097444
2022/06/29
1.3K0
React hooks 最佳实践【更新中】
react学习:React状态
实现一个点赞按钮。点击数字增加 一:建立LikeButton.js  import React from 'react' class LikeButton extends React.Component{ constructor(props){ super(props) this.state={ likes:0 } // this.increaseLikes=this.increaseLikes.bind
爱明依
2019/04/22
6990
react学习:React状态
在 localStorage 中持久化 React 状态
我们将创建一个日历应用,就像谷歌日历。这个应用可以让我们在月份、周和日之间进行切换。
Jimmy_is_jimmy
2023/04/22
3.1K0
在 localStorage 中持久化 React 状态
【Flink】【更新中】状态后端和checkpoint
有状态的计算是流处理框架要实现的重要功能,因为稍复杂的流处理场景都需要记录状态,然后在新流入数据的基础上不断更新状态。下面的几个场景都需要使用流处理的状态功能:
zeekling
2023/09/06
5010

相似问题

使用componentDidUpdate更新react中的状态

10

使用状态更新对象的react redux状态

147

使用中继更新React状态

31

使用react立即更新状态

13

使用_.merge更新react状态?

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文