小编shi*_*mar的帖子

返回对本地对象的引用的函数

我写了一个函数,它返回对本地对象的引用.

Fraction& operator*(Fraction& lhs, Fraction& rhs)
{
    Fraction res(lhs.num*rhs.num,lhs.den*rhs.den);
    return res;
}
Run Code Online (Sandbox Code Playgroud)

函数返回后,res对象将被销毁,接收对象将指向Ex-Fraction对象,导致使用它时出现未定义的行为.任何打算使用此功能的人都会遇到问题.

为什么编译器无法检测到这种情况作为编译时错误?

c++ reference c++11

9
推荐指数
1
解决办法
674
查看次数

当作为函数参数传递时,elixir是否制作了地图的副本?

换句话说,我想知道在elixir中是否通过值或引用将映射传递给函数.我怀疑Elixir没有副作用的原则是值得的.但是,大型地图不会造成巨大的重复效率低下吗?

在此先感谢您的帮助.

elixir elixir-framework

7
推荐指数
1
解决办法
764
查看次数

为什么shared_ptr签名与数组的unique_ptr不同?

std::unique_ptr<int[]> p(new int[10]); //ok

std::shared_ptr<int[]> p(new int[10]); //Error

shared_ptr<int> sp( new int[10],[](int *p){delete [] p;});
                                       //Ok, writing custom deleter for
                                       //array since shared_ptr will call
                                       //delete by default.
Run Code Online (Sandbox Code Playgroud)

与unique_ptr相比,对于数组,shared_ptr签名是否有任何特殊原因?

如果两个api都遵循类似的签名,那会更简单.

c++ memory shared-ptr unique-ptr c++11

6
推荐指数
1
解决办法
414
查看次数

如果Android服务崩溃,它会关闭正在运行的应用程序吗?

我正在为Android应用程序组件编写服务,我希望我的应用程序不会因为服务中的任何错误而崩溃.默认情况下,应用程序是否受到保护,以防止后台服务的任何错误行为.

service android android-intent

5
推荐指数
1
解决办法
2306
查看次数

数组的auto_ptr、unique_ptr 和shared_ptr 的设计行为

在了解auto_ptr、unique_ptr和shared_ptr时,我开始知道auto_ptr析构函数使用delete,而不是delete[],而unique_ptr确实可以正确处理它。

auto_ptr<char> aptr(new char[100]);
unique_ptr<char []> uptr(new char[100]);
Run Code Online (Sandbox Code Playgroud)

无论如何,auto_ptr 在 c++11 中已被弃用。而且我知道 unique_ptr 比 auto_ptr 具有更多功能。我有两个与此行为相关的问题

a) 为什么c++标准库团队在设计auto_ptr的行为时没有考虑到它对数组的缺点。

b) 另外,即使c++11中引入了shared_ptr,为什么它的实现不支持删除数组?

c++ c++11

4
推荐指数
1
解决办法
347
查看次数

发布后,shared_ptr <T> :: get()的返回值是多少?

释放后std::shared_ptr<T>,当我这样做的时候ptr.get()是返回值NULL还是nullptr?为了比较,我使用了这个:

std::shared_ptr<int> ptr(new int(44));

ptr.reset();
int *p = ptr.get();

if (p == nullptr)
{
    cout << "nullptr";
}

if (p == NULL)
{
    cout << "NULL";
}
Run Code Online (Sandbox Code Playgroud)

两者似乎都是结果.

c++ shared-ptr c++11

3
推荐指数
1
解决办法
366
查看次数

windows编程中_spawnl和Createprocess(...)API有什么区别?

windows编程中_spawnl(...)Createprocess(...) API有什么区别?

这些API在创建流程行为方面有何不同.

windows winapi

2
推荐指数
1
解决办法
492
查看次数

Elixir实用程序函数根据索引和大小从List返回子列表

在Elixir中是否有任何实用程序函数,我想根据索引和大小从数组中获取子列表?

枚举实用程序不提供此功能

arr = [1,2,3,4,5,6,7]
from=2
size=3
res = sublist(arr,from,size)
#res should return [3,4,5]
Run Code Online (Sandbox Code Playgroud)

elixir elixir-framework

2
推荐指数
1
解决办法
937
查看次数

多次包含命名空间

如果多次包含相同的命名空间会有问题吗?

#include<iostream>
using namespace custom;
using namespace custom;
Run Code Online (Sandbox Code Playgroud)

是否可以将guard应用于名称空间之类的头文件,以便不会多次包含名称空间?(比如#ifndef ...)

c++ c++11

-1
推荐指数
2
解决办法
1568
查看次数