小编tun*_*unc的帖子

使用VS2012进行MPI调试

从Visual Studio 2012中删除了群集调试选项.那么有没有办法在VS2012中调试MPI应用程序?

mpi visual-studio-debugging visual-studio-2012

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

从std :: set中提取move only类型

我有一个std::set<std::unique_ptr<T>>,我想把它移到一个std::vector<std::unique_ptr<T>>

#include <set>
#include <vector>
#include <memory>

class C {};

int main()
{
  std::set<std::unique_ptr<const C>> s;
  std::vector<std::unique_ptr<const C>> v;
  std::move(s.begin(), s.end(), std::back_inserter(v));
}
Run Code Online (Sandbox Code Playgroud)

这会在VS2017上出现以下错误:

错误C2280:'std :: unique_ptr> :: unique_ptr(const std :: unique_ptr <_Ty,std :: default_delete <_Ty >>&)':尝试引用已删除的函数

我们不能将迭代器移动到非const变量std::set吗?什么可以解决这个问题?

c++ stl move set c++11

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

null shared_ptr可以访问成员函数

我可以访问null shared_ptr对象的成员函数:

#include <memory>
#include <iostream>

class A
{
public:
    int getNum() {return 1234;}
};

int main()
{
    std::shared_ptr<A> pA(nullptr);
    std::cout << pA->getNum() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

当我期待一个例外时返回1234.同样的结果发生了

std::shared_ptr<A> pA();
Run Code Online (Sandbox Code Playgroud)

要么

std::shared_ptr<A> pA();
pA.reset();
Run Code Online (Sandbox Code Playgroud)

这真的是预期的行为吗?如果是corect shared_ptr defination在成员函数调用的情况下抛出异常是什么?

使用VS2010.

c++ tr1 shared-ptr c++11

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