Re: Compiling Boost MultiArray



Howard Hinnant wrote:
In article <8Z-dnRB-RN3DblffRVn-vg@xxxxxxxxxxx>,
 Doyle Rhynard <drhynard@xxxxxxxxxxx> wrote:


However, the following is a simple test program:

  #include <boost/multi_array.hpp>
  #include <iostream>

  using namespace std;
  using namespace boost;

  int main() {
    multi_array<float,3> f(extents[5][4][3]);
    for (int N0 = 0; N0 < 5; N0++) {
      for (int N1 = 0; N1 < 4; N1++) {
        for (int N2 = 0; N2 < 3; N2++) {
          f[N0][N1][N2] = 100*N2 + 10*N1 + N0;
          cout << "  " << f[N0][N1][N2];
        }
        cout << endl;
      }
    }
    return 0;
  }

results in numerous compile errors, mostly ambiguous overloaded function accesses and denied access problems. For comparison, it compiles and runs perfectly using Cygwin/g++.


It sounds like either a boost configuration error, or perhaps an access error in your project's paths. Make sure your boost path is in your system paths, and uncheck "Source relative includes".

-Howard

You were mostly right. The only way that I could get it to compile was to uncheck both the "Source relative includes" and the "Always Search User Paths". If either were selected, there were errors generated, no matter where I placed the Boost directory: project directory, arbitrary directory, or even in the Codewarror directory.


Somehow, I suspect that the problem is related to the rather strange layout of the nested structure Boost directories and the way they refer to each other.

Are you aware of a preferred place to store the Boost files so that I can use the "Source relative includes" and the "Always Search User Paths" options? I know that I have needed them in the past.

.