昨天C++面试的几道小题,看你自己能答好几道?解决思路

昨天C++面试的几道小题,看你自己能答好几道?
昨天面试时,一个年轻的GG问的我的一些问题,自己感觉一道都没答好,请大家安慰我一下。
本人工作两年,水平一般,请问能答好以下所有问题的程序员值多少钱?

1. 讲一讲STL中用到了哪些你感兴趣的设计模式?
2. auto_ptr是如何保证资源的释放?析构是如何在异常发生的情况下依然保证资源的释放?
3. 结构化异常的实现原理?
4. 左值与右值的区别,举例说明?
5. 用win32汇编描述函数的调用过程?
6. C++最新标准中,你感兴趣的地方是什么,用过什么特性?
7. 讨论模板定义声明分离式编译,支持这种特性的编译器?(他说了一种编译器支持分离编译,忘记名字了)


------解决方案--------------------
1, 克隆模式
2, auto_ptr不记录引用计数, 拷贝构造/赋值都会使原auto_ptr失效, 而将资源转移到新的auto_ptr中. 与之对比的就是shared_ptr, 通过使用一个int的句柄保证多个shared_ptr持有同一资源的计数. 当然, 这些玩意都不是线程安全的, 使用慎重.
3, 没接触过.
4, 左值就是临时变量, 它们不能被赋值, 但不能赋值的不一定是左值, 比如const修饰的变量.
5, 我不会win32开发.
6, 我认为必将灭亡.
7, VS2010?
------解决方案--------------------
前6个问题都能扯点东西出来

第7个问题真蛋疼,一句话总结,“靠谱的编译器都不支持模板分离编译,支持模板分离编译的编译器都不靠谱”
------解决方案--------------------
4. 左值与右值的区别,举例说明?
5. 用win32汇编描述函数的调用过程

我提供个答案,不对请跟正

左值可以赋值,右值不可以 ,&只能对于左值使用

5.
比如:调用函数void _cdecl f(int num)
{

}

反汇编大概过程如下:

push 参数
保存f的下一条执行语句的地址到函数栈中
push ebp
mov ebp,esp
......
.....

pop ebp
ret 4

如果参数设计到浮点数,就比较复杂了,

fld到st(0)中,然后 fstp,等等,,,