heroboy

这样?
template<class T,class A1>
T Call(T(*f)())
{
return f();
}

template<class T,class A1>
T Call(T(*f)(A1),A1 a)
{
return f(a);
}

template<class T,class A1,class A2>
T Call(T(*f)(A1),A1 a,A2 b)
{
return f(a,b);
}
先用VirtualQueryEx得到内存的属性。有些内存区域可能是代码或者文件的映射,不需要查询。
根本不是效率原因。使用宏不能区分是数组还是指针。模板的话,如果传入的是指针会编译错误的。
it.operator->()->operator->()->Release();
所以,boost里面专门做个一个放指针的容器
swap就做swap的功能吧,扩展太多功能的话,代码不容易读懂。
c#其实没必要用ISwapable接口,用反射的话每个对象都可以swap。
map重载了std::swap,所以一般情况下都可以用std::swap,没有必要用成员函数。
for each(const std::string & s in v_s)
这种东西有什么好改的
mfc/atl里不跨平台的东西多了去了,比如:__if_exises

主要是不做c++/cli,所以有空改进mfc了
shutdown(...) first.
没有潜伏性和传播性的不是病毒