c++11,g++,complex-numbers,clang++,icpc

The difference is that on Linux, you're using libstdc++ and glibc, and on MacOS you're using libc++ and whatever CRT MacOS uses. The MacOS version is correct. (Also, your workaround is completely broken and insanely dangerous.) Here's what I think happens. There are multiple overloads of conj in the environment....

c++,c++11,boost-graph,icc,icpc

Since you use a reference Graph& G in your predicate my_filter_pred the latter is copy-constructable but cannot be assigned by operator=. But you need operator = in many places of your code.gnable. I would recommend to change the code as follows template struct my_filter_pred { public: my_filter_pred() { } my_filter_pred(Graph&...

As specified in Boost Libraries, matrix (size_type size1, size_type size2): Allocates an uninitialized matrix that holds size1 rows of size2 elements. So you are using a matrix not initialized, causing those strange errors. Create first a zero-matrix or an identity matrix: identity_matrix<double> matrix(3); //create a 3x3 identity matrix zero_matrix<double> matrix(3,...