有没有人有关于使用boost进行std::complex<long double>
数组的reduce的想法?
我收到错误‘struct std::complex<long double>’ has no member named ‘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;
}
}
我使用mpic++ main.cpp -o main -lboost_mpi -lboost_serialization -lboost_system
答案 0 :(得分:0)
库中的常见设计可以选择使用外部类型,如SC ++ L,可能没有的现代标准类型,或其他来源的类型,除非明确包含标题,否则不提供功能。
Boost为Fusion和Serialization执行此操作,以避免为您在翻译单元中可能不需要的内容拉动重的SC ++ L标头,或者甚至可能不存在。
很可能存在您可能需要查找和包含的boost/serialization/complex.hpp
标题。