[吐槽]我为什么讨厌C++
最近在改currennt的代码,我擦擦擦,实在是忍不了了
C++最恶心的地方在于指针引用与面向对象混用!!TMD各种不匹配
举例:
template <typename TDevice>
void TrainableLayer<TDevice>::vectorXvector(real_vector* destmatrix, real_vector* srcvect1, real_vector* srcvect2){
int vect1size=srcvect1->size();
int vect2size=srcvect2->size();
for(int row=0;row<vect1size;++row){
for(int col=0;col<vect2size;++col){
//real_t value=srcvect1[row]*srcvect2[col];?
}
}
}
代码内容不要在意,就说这个real_vector,是个对象,需要用指针传递
但是这个对象是thrust库实现,想要访问real_vector中的元素的话,只有重载的[]可以用,也就是real_vector[i]这样……
我擦,那么这里我该怎么用啊!!假设real_vector的指针是p:
*p->[]在语法层面就是不允许的。*p->get(i)是没有实现的。p[i]访问的内容已经不是我想要的向量中第i个元素了……
这就是给予屁民太大灵活性的后果,最后就是这样互相扯皮!
如果不允许重载,real_vector你老老实实给我实现一个get函数,我这里就能用了啊!
---------------
好吧……我out了,查了一下发现需要先dereference之后就可以用重载了
(*p)[i]
但这也反映了c++语法过于灵活~真心觉得学习这种规则用法是浪费时间………
reference:
http://www.cplusplus.com/forum/beginner/28033/
[吐槽]我为什么讨厌C++的更多相关文章
- 扎心!来自互联网er的2019年度总结,看完笑着流泪……
转眼2019年已经接近尾声,又到了年度总结的时候了.过去一年,你加了多少班,熬了多少夜,回想起来历历在目.互联网人2019年度总结,看完扎心了-- 01 - 这一年里 你一共提了275个需求 其中27 ...
- C/C++ 吐槽第一期:你最讨厌的C/C++里面的数据类型是什么
C/C++ 这里面讨论的范围包括从以往开始,到现有的所有官方标准,VC扩展,GCC扩展, C语言部分包括C89.C90.C99.C11这些知名的大版本,中间或者之前的比如K&R这种不出名的小版 ...
- 讨厌OpenSSL
在OpenSSL心脏出血后,.我相信很多人都出了血.而流下眼泪...瞬间出现在网上了很多吐槽OpenSSL文章还是那条,窝火一刻仿佛心脏被释放出来,按照这个忙疯了,我吐在嘈杂.在这些年被雪OpenSS ...
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(八)代码优化整理小记及个人吐槽
日常啰嗦 这两天也一直在纠结这一篇文章该写什么东西,前面临时加的两篇文章就有些打乱了整体节奏,这一篇又想去写一下代码层面优化的事情,可是也不太能抓住重要的点,不太确定从何入手,因为这件事情牵涉了太多技 ...
- 真的讨厌ClickOnce这东西
ClickOnce真的问题多. 升级问题,每次升级后都新建一个文件夹,旧的程序数据全都没有.迁移过来也一堆问题.还有录音问题,Win7下录音报错,最后查来查去就是将文件路径太太长,要控制长度.还有安装 ...
- [入门到吐槽系列] Webix 10分钟入门 一 管理后台制作
前言 本人是服务端程序员,同时需要兼职前端开发.常用的就是原生态的HTML.Javascript,也用过ExtJS.Layui.可是ExtJS变公司后非常难用.Layui上手还行,用过一段时间,会觉得 ...
- Javascript模拟继承(赠送.net吐槽一段)
首先吐槽一句,今年的就业形势很不乐观啊,特别是搞.net的(相对java),特特别是还没出校门没有正式工作经验的,找个实习很难,前些天接了个面试电话,上来就质疑我“你一个在校大学生怎么可能做了那么多项 ...
- angular开发者吐槽react+redux的复杂:“一个demo证明你的开发效率低下”
曾经看到一篇文章,写的是jquery开发者吐槽angular的复杂.作为一个angular开发者,我来吐槽一下react+redux的复杂. 例子 为了让大家看得舒服,我用最简单的一个demo来展示r ...
- 吐槽!important专用博文
在IT公司实习了1个多月,氛围还是不错的,也算是积累了一些项目经验,同时在代码模块化.版本控制.任务优先级等方面有了更进一步的体会和理解,深刻认识到在一个团队,最重要的是沟通和负责. 嗯,说了下题外话 ...
随机推荐
- mysql触发器应用和创建表错误代码: 1118 Row size too large. 解决
1.针对数据库查询问题的方便,可以建立重要表的log备份记录表,在主表的添加,修改,删除添加触发器,修改触发器增加触发字段的点,限制条件. 数据库log表查问题比从线上多台服务器上下载日志文件相对方便 ...
- 【一步步学OpenGL 21】 -《聚光灯光源》
教程 21 聚光灯光源 原文: http://ogldev.atspace.co.uk/www/tutorial21/tutorial21.html CSDN完整版专栏: http://blog.cs ...
- Log4net用法(App.config配置)
配置文件 <configSections> <section name="log4net" type="log4net.Config.Log4NetCo ...
- 数据库iops的理解
想购买阿里云的RDS mysql,想请教下最大连接数是请求数吗?如下图,600最大可支持连接数,那一个页面查询30次,20个人同时请求,数据库不就超载了么?(内存2400MB,专用数据服务器,只能支持 ...
- Android开发-- Genymotion模拟器
模拟器安装 http://blog.csdn.net/beiminglei/article/details/13776013 连接ADB http://android3g.diandian.com/p ...
- EhCache初体验
一.简介 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点.Ehcache是一种广泛使用的开源Java分布式缓存.主要面向通用缓存,Java EE和轻量级容器.它具有内存和磁盘存 ...
- SaltStack 批量分发目录
这里演示如何将 salt-master 上的目录批量分发到多台 salt-minion,步骤如下: [root@localhost ~]$ cat /srv/salt/top.sls # 先定义入口配 ...
- codeblocks编码设置
注意编码统一,即文件编码和编译时的编码统一即可. codeblock13.12下: 文件编码: setting -> editor ->general setting -> othe ...
- MVC的简单分页【转】
传值的方式是通过querystring. 本例子是把整需要的数据查出来再分页的,因为当时做的时候数据很少,只有几十条. 如果数据多的话,可以在存储过程里分页,只是要传页码和记录的条数过来. 控制器: ...
- [iOS] 在 ios10 中使用 imessage
本文转载至 http://www.tuicool.com/articles/zIFvQn7 原文 http://www.bourbonz.cn/在ios10中使用imessage/ 主题 iOS ...