boost是否支持c ++ 11的std :: tuple的序列化?
我在/ boost/serialization /找不到tuple.hpp头文件
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兼容的).这应该有用,但我正在寻找一个更简单的解决方案.
简而言之,当该类没有定义复制构造函数并且没有默认构造函数时,我想将元素添加到类元素的向量中.这是一个最小的例子(感谢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)
我最好的猜测是我不能在类中使用向量,除非它有一个复制构造函数或默认构造函数.寻找验证或启发.