小编Amm*_*mar的帖子

boost是否支持c ++ 11的std :: tuple的序列化?

boost是否支持c ++ 11的std :: tuple的序列化?

我在/ boost/serialization /找不到tuple.hpp头文件

我正在使用boost 1.52.0(如果需要,很高兴升级,但似乎版本1.53中的更改没有任何与此相关的内容).

c++ serialization boost boost-serialization c++11

14
推荐指数
1
解决办法
2881
查看次数

有没有一种简单的方法来使用Open MPI?

OpenMPI 强烈建议使用他们的包装器编译器.在幕后,他们的包装器编译器mpiCC调用gcc(默认情况下?)并为MPI代码添加必要的标志进行编译.但是,其他编译器提供比gcc更多的描述性错误消息(例如,clang也是GCC兼容的).所以,我希望能够使用Open MPI.

我试过了:

1)找到用于指定编译器的mpiCC选项,但是

mpiCC --help
Run Code Online (Sandbox Code Playgroud)

只是吐出g ++帮助页面.

2)使用--showme:compile选项

mpiCC --showme:compile ./test-boost.cc -lboost_mpi -lboost_serialization -o test-boost
Run Code Online (Sandbox Code Playgroud)

而不是调用gcc,打印编译MPI代码所需的标志.然后我可以使用那些与clang(因为它是GCC兼容的).这应该有用,但我正在寻找一个更简单的解决方案.

clang openmpi

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

当MyType没有默认构造函数而没有复制构造函数时,如何向vector <MyType>添加元素?

简而言之,当该类没有定义复制构造函数并且没有默认构造函数时,我想将元素添加到类元素的向量中.这是一个最小的例子(感谢juanchopanza修复我的例子):

class MyType {
 public:
  MyType(int height, int width);
  MyType() = delete;
}

#include <vector>
int some_function() {
  // Define the vector.
  std::vector<MyType> array;
  // Define an element.
  MyType element(1,2);
  // Now, how do I add an element to the vector?
  //array.resize(1); // NO DEFAULT CONSTRUCTOR SO THIS WON'T WORK.
  //array.push_back(element); // NO COPY CONSTRUCTOR SO THIS WON'T WORK.
}
Run Code Online (Sandbox Code Playgroud)

我最好的猜测是我不能在类中使用向量,除非它有一个复制构造函数或默认构造函数.寻找验证或启发.

我检查了这个,这个,这个这个,但它们都没有解决我的问题.

c++ vector

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