re: 做了一个XML解释器 空明流转 2008-06-20 13:25
日,你真他妈的有闲工夫。
re: 能造出原子弹的民族当然是优等民族 空明流转 2008-06-19 12:20
蒋某人如果统治大陆应该也会搞出原子弹的。。。
re: 如何手写语法分析器 空明流转 2008-06-15 22:10
很好,很强大。。。
Eric Python IDE用的就是Scintilla。是个C++的东西,感觉上一般般。。。(其实Eric功能挺丰富的,就是界面比较丑,所以就不喜欢sci了,哈。)
GPL = GNU Public License。GPL V2是黏附性的,如果选择了LGPL就相对自由了,我记得BSD License更加自由一点。
re: 图形库的概要设计 空明流转 2008-06-11 12:57
图形库,仅仅是数学问题而已。
---------这句话很赞同。很明显我在思路上不如你清晰。
re: 如何学习编程(一) 空明流转 2008-06-07 18:57
刚刚无聊,用C#做了一个2D的骨骼动画的例子。。。
re: 写了一个弹性物体碰撞模拟 空明流转 2008-06-06 16:01
vc做这些都属于蛋疼行列。
re: 《构造正则表达式引擎》新鲜出炉啦! 空明流转 2008-05-22 15:30
很好很强大的矬人,哇咔咔
re: 使用高阶函数开发语法分析器 空明流转 2008-05-22 08:49
@陈梓瀚(vczh)
切,你敢叫OCaml啊...
re: 剖析Etwork网络库 空明流转 2008-05-21 21:52
做面向对象大抵就是两个极端,一个是回归过程化的抽象,一个就是纯面向对象。
不过感觉这个倾向是跟你长期从事的领域有关。
re: 使用高阶函数开发语法分析器 空明流转 2008-05-21 20:28
喂,vc,你看我楼上的人叫啥名字。
re: 关于《构造可配置词法分析器》的后续 空明流转 2008-05-16 21:34
下篇把我转的地址也贴上,帮我刷刷人气的说,哇咔咔咔。
re: 关于《构造可配置词法分析器》的后续 空明流转 2008-05-16 21:27
什么叫“一些人的转贴”,丫不久我转贴了嘛。。。
/吐口水
好好想,慢慢写,这次不转贴,收藏好了。
re: 脚本编程琐话 空明流转 2008-05-16 20:21
@Kevin Lynx
啥还可以。。。以前咱俩也就是偶尔聊天而已,接触不多。话说现在你已经走上正职了吧。
re: 脚本编程琐话 空明流转 2008-05-16 16:46
@陈梓瀚(vczh)
好处你详细的说说,我倒是没感觉有什么好不好处的,当然也没觉得有什么坏处。我只是讨论一下这个问题我的处理方法而已。
re: 做个投票,大家支持 空明流转 2008-05-15 11:43
我几乎没做什么习题。。。后面的也就可以不选了吧。。。
WinXP, VS 2003/2005; mingw/gcc 3.4/3.5/4.2
re: 5.12汶川大地震(一) 空明流转 2008-05-14 17:44
是挺麻烦。我同学倒觉得挺过瘾的,也在成都。
re: 学生时代做的东西-留个纪念 空明流转 2008-05-14 17:43
不错不错,比我强悍许多。
re: 正则表达式——一点小插曲 空明流转 2008-05-12 14:03
鄙视造车轮啊造车轮。。。
re: 正则表达式——一点小插曲 空明流转 2008-05-08 12:13
现在MSR的不一定有boost好了,你用的是regex还是xpressive的那个,我都分不清有什么区别,囧
re: 今天发现自己的array类太慢 空明流转 2008-04-28 12:06
Release的照理没那么慢。
模仿的挺像。。。
你全文里面我唯一100%赞同的一句话就是:
因为Haskell的语法实在是太诡异了
囧。。。
其实没那么麻烦,下个mingw的install,download并安装好以后,下载新的for mingw的gcc编译器和gdb直接塞到文件夹下就行了
re: 对string类的思考 空明流转 2008-04-11 20:12
shared_ptr<string> / string*,一切都搞定了。
还有就是出去4819的那个character的warning,还有些别的warning,如果想眼不见心不烦还是wd为好。。。
说实话,2008下面boost还是谨慎点好,不是那么好用的。比方说date。这个玩意直接让thread和interprocess有hang over的可能。
另外compileflag已经可以用命令行传递了,不再需要用jamfile。
插件可以以dll或者com的形式提供。
如果是前者,最好连头文件都不要,用不带mangle的C形式导出函数,然后选用LoadLibrary + GetProcAddress的API完成。
如果是后者,最好支持IDispatch,这样脚本也可以使用它做一些快速开发。
re: 不怕无知,但怕无畏 空明流转 2008-03-21 17:51
最近回帖的怎么都开始喜欢喷人了。
re: VC6正在被抛弃 空明流转 2008-03-18 13:57
@abettor
boost经常到标准最阴暗的角落去挖东西。。。
“我靠,我被8.5.3打败了”
一般我都拿preprocessor来验证宏写的有没有问题。
re: VC6正在被抛弃 空明流转 2008-03-14 17:50
话说设计的像BOOST这样BT的库也不多。
re: 关于资源包的新的比较完善的想法 空明流转 2008-03-12 12:55
没必要,这种想法是致命的开端。
俺以前干过一个,发现太麻烦了,还不实用。
re: [转]【下载】Qt 4.3 商业版 空明流转 2008-03-09 20:33
唉,要是VS上能用我他妈就不去找商业版的了。。。
re: 一个type2id的程序 空明流转 2008-03-09 11:39
typelist有typelist不妥的地方。
我的原帖解法就是typelist的(boost::mpl::vector)。
但是typelst的解法中,它的类型名称信息只能用一次,而我在做枚举或者别的时候需要再次利用这个类型名称生成合适的枚举值名称或者别的什么。
所以我用了boost的preprocessor作为确定序列的工具。
re: 一个type2id的程序 空明流转 2008-03-08 15:53
新的实现,觉得还是这个好一点.
#include <iostream>
#include <boost/smart_ptr.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/mpl/find.hpp>
#include <boost/mpl/at.hpp>
#include <boost/mpl/size.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/less.hpp>
#include <boost/mpl/int.hpp>
#include <boost/mpl/less_equal.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/preprocessor/seq/for_each.hpp>
#include <boost/preprocessor/seq/for_each_i.hpp>
using namespace std;
struct empty{};
#define TYPE_LST \
(empty) \
(bool)(float)(int)
#define BEGIN_ENUM() enum ENUM_NAME {
#define REG_ENUM(r, data, i, type_elem) BOOST_PP_CAT(ENUM_PRED, type_elem) = i,
#define END_ENUM() };
#define BEGIN_ENCODE_DECODE() \
template<class T> struct type_encode{ static const int id = 0; static const ENUM_NAME tag = ENUM_NAME(0); };\
template<int i> struct type_decode{ typedef empty type;};
#define REGISTER_TYPE(r, dummy, i, type_elem) \
template<> struct type_encode< type_elem >{static const int id = i; static const ENUM_NAME tag = ENUM_NAME(i);};\
template<> struct type_decode< i >{typedef type_elem type;};
#define END_ENCODE_DECODE()
enum s{
ebool
};
namespace shader_constant
{
#define ENUM_NAME sh_typeids
#define ENUM_PRED sh_typeids
#define ENUM_POST
BEGIN_ENUM()
BOOST_PP_SEQ_FOR_EACH_I(REG_ENUM, _, TYPE_LST)
END_ENUM()
BEGIN_ENCODE_DECODE()
BOOST_PP_SEQ_FOR_EACH_I(REGISTER_TYPE, _, TYPE_LST)
END_ENCODE_DECODE()
const int size_of_typelst = BOOST_PP_SEQ_SIZE(TYPE_LST);
}
using namespace shader_constant;
typedef void (*Assignments)(void* p1, void* p2);
template<class T>
void AssignImpl(void* p1, void* p2)
{
cout << typeid(T).name() << endl;
*(T*)p1 = *(T*)p2;
}
template <> void AssignImpl<empty>(void* p1, void* p2)
{
cout << "error type!" << endl;
}
Assignments assigns[size_of_typelst+1];
template <int i>
struct assigns_initializer
{
assigns_initializer<i-1> m;
assigns_initializer(){
assigns[i] = &AssignImpl<typename type_decode<i>::type >;
}
};
template <>
struct assigns_initializer<-1>
{
assigns_initializer(){
}
};
static assigns_initializer<size_of_typelst> ai;
typedef double T;
int main()
{
T i1(T(0));
T i2(T(10));
assigns[type_encode<T>::id](&i1, &i2);
cout << i1;
system("pause");
return 0;
}
re: 网络和软件相通吗? 空明流转 2008-03-08 15:35
cpp用于网络程序还是很多的.
两年前搞了个带分页的file,每4KB一个页,这样package的内容就可以随时修改而不用解包数据再打包;碎片多了再重新整理...不过bug很多,而且也觉得没啥必要就放弃了...现在觉得boost的iostreams和serialization不错.
re: GCC不能正确继承模板类? 空明流转 2008-03-02 15:56
@stO
大部分编译器的实现都是在初始化列表里满足此项要求,而构造函数体这一要求都放宽了,跟人觉得这一要求也确实没有什么道理,因为在调用子类构造函数的时候基类都已经构造完毕了。标准也只是标准而已。
re: GCC不能正确继承模板类? 空明流转 2008-03-02 11:33
这似乎是gcc编译器本身的问题。