Registered Member
|
Hi,
I'm trying to use Eigen with Borland C++ builder 6 on Windows XP. First I had an error on Macros.h "Please tell me what is the equivalent of __attribute__((aligned(16))) for your compiler". So I added the lines: #elif (defined __BORLANDC__) #define EIGEN_ALIGN_128 __attribute__((aligned(16))) but now there are other errors: [C++ Error] Meta.h(87): E2108 Improper use of typedef 'ArgType' [C++ Error] Meta.h(90): E2108 Improper use of typedef 'ArgType' [C++ Error] Meta.h(90): E2299 Cannot generate template specialization from 'ei_result_of' [C++ Error] Meta.h(100): E2428 Templates must be classes or functions [C++ Error] Meta.h(111): E2108 Improper use of typedef 'ArgType0' [C++ Error] Meta.h(111): E2293 ) expected [C++ Error] Meta.h(111): E2040 Declaration terminated incorrectly [C++ Error] Meta.h(111): E2040 Declaration terminated incorrectly [C++ Error] Meta.h(111): E2190 Unexpected } [C++ Error] Meta.h(114): E2451 Undefined symbol 'ei_result_of' [C++ Error] Meta.h(124): E2428 Templates must be classes or functions [C++ Error] Meta.h(132): E2428 Templates must be classes or functions [C++ Error] Meta.h(132): E2141 Declaration syntax error [C++ Error] Meta.h(147): E2451 Undefined symbol 'ei_meta_sqrt' [C++ Error] Meta.h(147): E2428 Templates must be classes or functions [C++ Error] Meta.h(177): E2451 Undefined symbol 'ei_result_of' [C++ Error] Meta.h(179): E2428 Templates must be classes or functions [C++ Error] XprHelper.h(57): E2451 Undefined symbol 'Dynamic' [C++ Error] XprHelper.h(57): E2299 Cannot generate template specialization from 'ei_int_if_dynamic' [C++ Error] XprHelper.h(65): E2428 Templates must be classes or functions [C++ Error] XprHelper.h(115): E2451 Undefined symbol 'IsDense' [C++ Error] XprHelper.h(115): E2401 Invalid template argument list [C++ Error] XprHelper.h(124): E2428 Templates must be classes or functions [C++ Error] XprHelper.h(128): E2451 Undefined symbol 'Matrix' [C++ Error] XprHelper.h(128): E2395 Too many arguments passed to template 'ei_eval' [C++ Error] XprHelper.h(128): E2228 Too many error or warning messages Is it because borland c++ is not compliant to the C++98 standard? Any help? Thanks Lorenzo |
Moderator
|
Indeed, it seems borland c++ has a limited support for c++ templates. In particular it seems it is not able to parse function types properly.
Looking at boost::result_of code, they also had to disable it for the Borland compiler so I don't think there exists any workaround for that issue. Then, the best I can propose is to disable some advanced features for Borland (have to check which ones). |
Registered Member
|
I doubt it's worth making changes to eigen to make it support a compiler that has "limited support for c++ templates"....
Meanwhile, if you want a free (in all senses of the word) compiler for windows that has perfect support for Eigen, use this: http://www.tdragon.net/recentgcc/
Join us on Eigen's IRC channel: #eigen on irc.freenode.net
Have a serious interest in Eigen? Then join the mailing list! |
Registered Member
|
Thank you, ggael and bjacob, for fast replies, Unfortunately I'm stuck with Borland because I'm working on an existing project and I can't change compiler. |
Registered Member
|
Lorys, I have the same problem with incompatibility of Borland compiler with Eigen, As you, I can´t change the compiler....
did you finally solve the problem? |
Registered Member
|
What about Embarcadero C++ Builder Seattle? The same error seems to occur, also. Is the reason still the same as mentioned above for Borland`s?
|
Registered users: bartoloni, Bing [Bot], Evergrowing, Google [Bot]