2016-04-13 63 views
0

有没有人有想过使用boost来减少std::complex<long double>数组?boost mpi reduce for std :: complex <long double> array

我收到错误‘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

在可以选择使用国外的类型,如SC + +1那些库通用的设计编译它,类型从你可能没有的现代标准来看,或者来自其他来源的类型是除非明确包含标题,否则不提供该功能。

Boost在Fusion和Serialization中执行此操作,以避免在您的翻译单元中可能不需要的重要SC++ L标头,或者甚至可能不存在的东西。

很有可能存在您需要查找和包含的标头,如boost/serialization/complex.hpp

相关问题