2016-04-13 66 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

相關問題