SmartPtr
本博客已搬至:http://www.cnblogs.com/baiyanhuang/
posts - 29,comments - 176,trackbacks - 0
共2页: 1 2 
re: Ubuntu & AMD64 常用软件安装 SmartPtr 2007-10-24 22:54
你的错误提示是什么呢
re: QT的Graphics View柜架(3/3) SmartPtr 2007-09-27 18:42
敢问阁下用的集成开发环境是哪个? 刚接触linux开发, 不知道哪个用起来爽一点:)
我的理解是这样的:
1. 静态存储区又分为静态初始化存储区和静态未初始化存储区,正如你说的,前者对应.data段,后者对应bss段, 但是不论在哪个段,都要占程序内存空间的吧

2. const变量应该只是编译器语法上的一个限制,数据会在哪个存储区并不由其决定, 事实上, 绕过C++语法,改变const值是很容易的:
const int ci = 10;
__asm
{
mov eax, 100;
mov ci, eax;
}
re: MD5算法的C++实现 SmartPtr 2007-09-10 08:27
.NET中产生HashCode用的貌似也是MD5算法???
re: 装了个ubuntu... SmartPtr 2007-09-07 17:37
我装的比较辛苦。。。。
re: 包的设计原则 SmartPtr 2007-09-07 13:30
那本书还没看过。。。
re: 装了个ubuntu... SmartPtr 2007-09-07 10:48
默认的不能,但我不知道是否有相关软件支持
re: 一个真正的Singleton SmartPtr 2007-08-28 21:38
随便说的,很荣幸:)
re: 一个真正的Singleton SmartPtr 2007-08-28 11:24
貌似是我以前写的一篇文章。。。
re: 用EditPlus配置VC环境(VC8) SmartPtr 2007-08-28 06:00
@boilerroom
貌似不行,不知道有没有朋友试过这个。。。
re: Autodesk面试技术题解答 SmartPtr 2007-08-20 08:46
@linwen
谢谢提醒:)
struct和class的默认继承属性的确也是区别, 对于18题的状态搜索, 我想应该用A*算法比较合适
re: Autodesk面试技术题解答 SmartPtr 2007-08-18 18:53
谢谢 腾 的建议,63,65已作修改,第5点的话,我在VS2005上是不行的,如下:
template<struct T>
class A
{
public:
T t;
};
re: Autodesk面试技术题解答 SmartPtr 2007-08-17 14:39
没有啦。。。
re: 引领Boost(一)(开篇) SmartPtr 2007-08-17 13:03
sorry, 我是说如果:) 所以现在没有。当然遇到了大家可以一起讨论:)
re: 引领Boost(一)(开篇) SmartPtr 2007-08-16 06:11
不知楼主读boost了解程度如何, 最近看了一点,如果碰到一些源码实现的问题,可以想你讨教。。。。
re: 关于人人相轻 SmartPtr 2007-08-13 12:46
@小艾

说的有道理!
但即使是为了自己的利益而“轻视”, 也算修养不够吧, 所谓损人利己,大不可取
我没有经历过, 但我愿意相信, 他们的文化氛围,全民素质要比我们好很多
re: 关于人人相轻 SmartPtr 2007-08-11 18:32
@AXTSHMF
恕我直言, 你所说的人之常情, 是指的什么人的常情呢, 人人生而平等,为何轻视却正常了呢。 我想那篇文章中作者将这条放在第一, 可能就是大家都觉得理所当然, 所以是最严重的吧
re: 学习 STL ,BOOST SmartPtr 2007-08-11 14:32
其实我也没有研读过boost的源码, 因为相对于STL, 它太大了, 也更复杂,自己也曾下载想好好读读,但最后还是没有足够的时间与精力去看。 引用网上一段介绍:

boost是一个准标准库,相当于STL的延续和扩充,它的设计理念和STL比较接近,都
是利用泛型让复用达到最大化。不过对比STL,boost更加实用。 STL集中在算法部
分,而boost包含了不少工具类,可以完成比较具体的工作。

boost主要包含一下几个大类:字符串及文本处理、容器、迭代子(Iterator)、算法
、函数对象和高阶编程、泛型编程、模板元编程、预处理元编程、并发编程、数学相
关、纠错和测试、数据结构、输入/输出、跨语言支持、内存相关、语法分析、杂项
。 有一些库是跨类别包含的,就是既属于这个类别又属于那个类别。
re: 学习 STL ,BOOST SmartPtr 2007-08-11 13:33
按照你所说的“有时感觉自己写的代码完全是一个C版的”, 我想现在去读 STL或boost都不太适合, 如果你对模板技术感兴趣, 建议你先熟悉一下STL的使用(参考<<C++标准模板库>>), 然后再研究STL的源码(参考侯捷<<STL源码剖析>>), 我想说的是参考书是很重要的帮助, 如果自己一头撞进去,恐怕过程会很曲折, 甚至会中途放弃
re: 对研发部的思考 SmartPtr 2007-08-11 13:28
楼主在浦东, 上海一些优秀的IT企业基本都在那边吧, 可以考虑一下。
其实我也有想搬去浦东的想法
re: DLL导出类 SmartPtr 2007-08-11 13:15
@filebat
两个好问题, 期待楼主解答
re: 我对软件优化的一些想法 SmartPtr 2007-08-11 00:58
@罗宾李
1. 当然,对于特定于语言的优化,C++比Java应该要好一些, 毕竟C++是一个更底层,可控性更强的语言。 但是对于workflow上的优化, 应该是语言无关的。我们所做的性能的提升,大部分是靠对workflow的优化实现的。

2. 关于map使用, 谢谢你的评论, 你说的很对。 这个例子为了简化,我没有给出足够的context. 我补充一些吧:
1) 该对象是一个API, 一个第三方库,我们没有权限去修改
2) 假设这个对象是一条样条曲线, 该第三方库没有在该对象中加入一个长度属性,而是在每次需要时去计算,从数学角度,我想应该也有其道理。(这样我就能保证每次取到的都是最新的)
重要的是,我们都认同cache是性能优化的利器, 的确,设计好的cache数据结构的确很重要,当然,这都是和特定需求紧密结合在一起的。

re: 伪句柄是什么 SmartPtr 2007-08-10 23:36
请问前面两位是 ”托“ 吗, 呵呵, 开个玩笑。。。。。
re: C++ 类成员的CALLBACK SmartPtr 2007-08-10 23:27
总结的不错, 比较巧妙的例子
re: 输出函数不应抛异常 SmartPtr 2007-08-10 23:20
也就是说异常不能抛出其所在模块了。。。 在公司讨论的时候谈到过这个问题, 不知楼主可否展开来谈一下。。。
re: 我对软件优化的一些想法 SmartPtr 2007-08-10 23:03
@aGAric
的确, 但这些应该是一些比较COMMON的想法, 也就是说我们在做优化的时候会去想到, 并可能有用的想法, 不知道你没有其他类似的方法, 大家可以一起讨论讨论:)
re: 我对软件优化的一些想法 SmartPtr 2007-08-10 22:43
因为算法上的优化一般都是为大家所知的, 所以在开发过程中也会特别注意, 因此这方面的优化并不是我们的侧重点
re: 基本概念:函数的传值(2) SmartPtr 2007-08-08 23:31
不明白楼主的理解方式:)
从C++语言层面上来理解,告诉你传值就是copy一个参数进去, 函数里对它所做的一切与原来的无关,这就清楚的不能再清楚了。 但是你不明白, 却要用反编译后看汇编代码才明白, 这和我的理解方式刚好相反, 我觉得你用汇编去验证到是可以理解。。。
re: File I/O SmartPtr 2007-08-07 11:48
我想这个, VS应该提供了相应的API来操作其文件,这应该是最便捷,准确的方法吧。
我想C++中实现COM就是这么做的
re: 一条语句中的逻辑 SmartPtr 2007-08-06 08:31
@windywinter

expression1 && expression2;
只有在Expression为true的情况下,才会继续执行expression2,这也就相当于条件判断语句
if(expression1) expression2;


这就是利用了其短路求值的功能
re: 一条语句中的逻辑 SmartPtr 2007-08-05 17:09
我想题意应该就是允许递归调用,不然难度貌似很高的
re: C++类模板的三种特化 SmartPtr 2007-07-20 01:03
template<class T>
class Compare<T*>
{
public:
static bool IsEqual(const T* lh, const T* rh)
{
return Compare<T>::IsEqual(*lh, *rh);
}
};
是模板特化, 你当然需要在之前定义其泛化版本
CRTP = the Curiously Recurring Template Pattern, 这里只是其应用之一, 它还可以用于模拟虚函数等.
关于Singleton的线程安全,虽然我们可以写一些代码来做到(或看起来做到)线程安全,但是由于现在C++内存模型的先天不足, 事实是无法做到。
这中错误一不小心就会出现,而且很难调,
其实我觉得楼主把意思归纳一下贴出来会比较好。。。。
re: C++模板类的三种特化 SmartPtr 2007-07-16 21:26
to longshanks

本文的目的其实并不是试图对C++的模板特化做一下全面的分类, 而是针对自己所遇到的,觉得比较有意思的,对于一个模板参数所能够做到的特化,并不想对C++中的全特化,偏特化有所混淆。当然,之间也得到了大家不少有价值的看法。尤其对于您所举的这个例子:
template<typename T>
class Y;
template<typename R, typename P1, typename P2>
class Y<R (P1, P2)> {...};//针对带两个参数,有返回值的函数类型特化

是我之前所没有想到的,我只考虑了数据类型并没有考虑到函数类型,但是我想参考针对数据类型所做的分类,可以得到函数类型对应平行的分类。比如对于这个例子,应该可以理解为第三种:特化为另外一个类(函数)模板。

PS:
谢谢关于模板类,类模板概念的澄清,原文已修改
re: VS9中C++少得可怜的更新 SmartPtr 2007-07-12 23:25
用VS, 还没用过CLR, 只用过标准C++
To aders06:

你是说template method吗, 这么做有什么好处?
这不是必读, 全读完了,读懂了, 你就是超牛人
To SuperPlyeR:

不仅是没有注册造成的, 应该说是某些异常操作使得该COM组件不可用, 可以是没有注册,也可以是注册后注册信息被误操作覆盖, 也可以是该DLL被删除, 总之, 在系统运行之前先检测一下这些东西是否都是ready的, 如果不是, 那就不要进去先。

之前有朋友说直接创建该COM对象来判断, 但我觉得创建组件只是去做判断,不太可取
re: 读《人月神话》 SmartPtr 2007-07-08 16:40
"老久没有更新BLOG了,结果排名之类的反而又升了一点····无语"

***************************
这可能是cppblog不够火的原因, 没有比较多的新人, 新文章涌现出来。。。对cppblog应该说是很可惜的一件事:)
to 万连文
可否解释一下, 实在是看不明白。。。。。
COM容器的使用, COleControlContainer和COleControlSite, 受教了。记得以前面试的时候被问到过COM容器,当时就说不出个所以然来
假设讲我的COM组件在系统运行一段时间后,在某个操作中才会被创建出来,而此时如果此对象无法创建,系统的任务就无法完成,此时用户就要问了:“早干嘛去了,先让我瞎忙活那么长时间, 不行早说嘛”, 呵呵,开个玩笑, 其实这就是我们同事遇到的现实问题。 但如果我在一开始就试图创建全部的COM对象而只为了判断其是否可创建,似乎消耗大了点,逻辑上也不太合理。
我有两点想法, 一是在性能不是关键因素的程序中代码的可读性重于效率;二是代码效率优化应该针对关键的瓶颈。 当然, 博主的一些思路也是值得讨论的
与成员函数所调用的对象(也就是 this 所指向的对象)相关的隐式参数永远也没有资格进行隐式转换
**********************************************
这个是必然的, 因为编译器根本无法确定你要转到什么类型。


不好意思, 对表达式模板不太清楚, 可否介绍一下先?
为什么C实现会比这个快呢, 他们的区别在哪里, 是什么影响了其效率?
共2页: 1 2