我知道有一些实现memcpy,它们以相反的顺序复制内存以优化某些处理器.曾经有一个错误" mp3 flash网站上的奇怪声音 "与之相关.嗯,这是一个有趣的故事,但我的问题是另一个功能.
我想知道,memset世界上有一个函数,从最后开始填充缓冲区.很明显,理论上没有什么能阻止这样的函数实现.但我完全感兴趣的是,这个功能是在某个地方某人的实践中完成的.我将特别感谢库中具有这种功能的链接.
PS我明白,就应用程序编程而言,缓冲区是按升序还是降序填充完全没有区别.但是,重要的是要找出是否存在任何"反向"功能实现.我需要它写一篇文章.
在一次采访中,我被问到为什么按价值捕获异常可能是一个问题,我回答说这会导致对象切片.这就是我在互联网上找到的,例如:https://www.viva64.com/en/w/v746/
但是现在我正在尝试进行实验,但是在按值捕获时我找不到切片的示例.切片的常规场景(不是例外)是这样的:
Derived d1;
Derived d2;
Base& b1 = d1;
Base& b2 = d2;
b1 = b2;
Run Code Online (Sandbox Code Playgroud)
在最后一行中调用Base的赋值运算符,它只复制Derived对象的Base部分.因此,b1的基础部分是从d2复制的,而b1的派生部分是从d2复制的.坏.
但是,当按价值捕获异常时,这怎么会发生?
我尝试了这个代码(同时使用:g ++和Sun CC编译器):
struct Base
{
virtual void print() const
{
cout << "{ Base: " << m << " }" << endl;
}
Base(int _m = 0) : m(_m) {}
int m;
};
struct Derived : Base
{
Derived(int _m = 0, int _n = 0) : Base(_m), n(_n) {}
void print() const
{
cout << "{ …Run Code Online (Sandbox Code Playgroud)