MengeCrowdSim / Menge

The source code for the Menge crowd simulation framework
Apache License 2.0
138 stars 64 forks source link

OSX build compatability #36

Closed curds01 closed 7 years ago

curds01 commented 7 years ago

This represents the work done by @chraibi to get Menge to build in mac. It includes a couple of final modifications to address some slight code styles. It replaces PR #35.

MengeCrowdSim commented 7 years ago

For idiosyncratic historical reasons, Menge was written and developed without C++11 or later. It's one of my goals to bring it up to date. One of the big benefits there may be to have better synchronization primitives (don't look at the implementation of the readers/writer lock.) C++11 and 14 provide far better portable constructs for parallelization that I want to include which should allow me to create a legitimate readers/writer lock.

And then there are other benefits as well.

chraibi commented 7 years ago

I understand. But Line 22 above will break if someone is using an old compiler without C++11 support. See How to detect c++11 support of a compiler with cmake

curds01 commented 7 years ago

I'm not sure what line you mean by "line 22"; can you provide more detail?

And, regardless of the detail, I have two years of concrete evidence that suggests Menge built just fine without C++11 support. In fact, what pushed the addition of that support was the change of the unordered_map from the tr1 space to the std namespace.

chraibi commented 7 years ago

Sean, this is line 22. It assumes the user is using a compiler with C++11 support, which may not be the case.

curds01 commented 7 years ago

Aaaaah, I understand now. Your concern is correct, but I feel the danger is slim to none. The risk of someone using a compile that doesn't support this flag is slight, and decreases every day.

chraibi commented 7 years ago

😃