C++ std::complex的boost-mpi-reduce<;长双>;排列
有没有人想到使用boost为C++ std::complex的boost-mpi-reduce<;长双>;排列,c++,boost,C++,Boost,有没有人想到使用boost为std::complex数组进行reduce 我收到错误“struct std::complex”没有名为“serialize”的成员 对于以下代码: #include <boost/mpi.hpp> #include<complex> namespace mpi = boost::mpi; int main() { mpi::environment env; mpi::communicator world; const int N = 4;
std::complex
数组进行reduce
我收到错误“struct std::complex”没有名为“serialize”的成员
对于以下代码:
#include <boost/mpi.hpp>
#include<complex>
namespace mpi = boost::mpi;
int main() {
mpi::environment env;
mpi::communicator world;
const int N = 4;
std::complex<long double> a[N]={};
if (world.rank() == 0) {
std::complex<long double> sum[N] = {};
mpi::reduce(world, a,sum, std::plus<>(), 0);
for(int i=0;i<N;i++) std::cout<<a[i]<<std::endl;
}
}
#包括
#包括
名称空间mpi=boost::mpi;
int main(){
环境环境;
mpi::通信器世界;
常数int N=4;
std::复合物a[N]={};
if(world.rank()==0){
std::复数和[N]={};
mpi::reduce(world,a,sum,std::plus(),0);
对于(int i=0;i库中的一种常见设计,可以选择使用外来类型,如SC++L类型、您可能没有的现代标准类型或其他来源的类型,除非您明确包含标头,否则不提供该功能
Boost这样做是为了融合和序列化,以避免为您的翻译单元中可能不需要或甚至不存在的内容引入沉重的SC++L标题
很可能存在类似于boost/serialization/complex.hpp的头,您可能需要查找并包含它