Open Source Routing Machine - C++ backend
Go to file
Daniel J. Hofmann a48f02e0da Takes care of proper special member generation globally, fixes #1689
Phew, a lot of classes were affected by this. The rationale for the
changes are as follows:

- When a type X declares any constructor, the default constructor is
  not declared, so there is no need for X() = delete there. In fact,
  there is brutal difference between those two: deleted members
  participate in overload resolution, but not-declared members do not!

- When a type X wants to be non-copyable (e.g. to be only movable, like
  threads, unique_ptrs, and so on), you can either do it by inheriting
  from boost::noncopyable (the old way), or better declare both (!) the
  copy constructor _and_ the copy assignment operator as deleted:

      X(X const&) = delete;
      X& operator=(X const&) = delete;

  We had tons of types with deleted copy constructors that were lacking
  a corresponding deleted copy assignment operator, making them still
  copyable and you wouldn't even notice (read: scary)!

References:

- http://accu.org/content/conf2014/Howard_Hinnant_Accu_2014.pdf
- http://www.boost.org/doc/libs/master/libs/core/doc/html/core/noncopyable.html

Note: I know, I'm quoting Hinnant's extraordinary slides a lot, but
getting the sematic right here is so incredibly important.
2016-01-27 17:25:30 +01:00
cmake Create public facing libraries for extractor, contractor and datastore 2016-01-21 06:47:34 +01:00
config new cucumber profile for Jenkins that doesn't fail because of an old Gherkin bug 2014-03-24 14:29:19 +01:00
docker No longer install osmosis in docker env 2016-01-13 17:57:22 +01:00
example Remove boost fusion dependency in RouteParameters 2016-01-26 22:57:02 +01:00
features Fix empty parameter list 2016-01-26 22:56:19 +01:00
include Takes care of proper special member generation globally, fixes #1689 2016-01-27 17:25:30 +01:00
profiles Merge pull request #1818 from gardster/side_road_tag_support 2016-01-11 17:10:42 +01:00
scripts Fix python2 2016-01-26 07:01:11 +01:00
src Takes care of proper special member generation globally, fixes #1689 2016-01-27 17:25:30 +01:00
test Create public facing libraries for extractor, contractor and datastore 2016-01-21 06:47:34 +01:00
third_party Update in-tree libosmium dependency to 2.5.4 2016-01-05 12:01:06 +01:00
unit_tests Create public facing libraries for extractor, contractor and datastore 2016-01-21 06:47:34 +01:00
.clang-format don't binpack parameters on 100 column width 2014-04-21 17:40:05 +02:00
.clang-tidy Integration scripts for Clang's Modernize and Tidy tool. 2015-09-22 17:32:32 +02:00
.cncc.style Add simple cncc file 2016-01-05 12:06:33 +01:00
.gitignore Revert "Build osmium_convert in order to be able to eventually replace osmosis" 2016-01-13 17:57:22 +01:00
.gitmodules Removing Docs submodule 2012-12-26 18:29:16 +01:00
.travis.yml Only run script on linux 2016-01-26 07:01:11 +01:00
appveyor-build.bat Fix AppVayor tests 2016-01-04 11:15:37 +01:00
appveyor.yml Enable AppVeyor only for master/develop and PRs 2016-01-18 21:23:13 +01:00
build-local.bat Remove commented out line in windows build script. History is what git is for. 2015-11-19 15:02:42 -05:00
CMakeLists.txt Removes check-hsgr 2016-01-26 22:57:02 +01:00
Doxyfile.in Use Readme.md as mainpage untill we have something better. 2015-09-22 16:26:21 +02:00
Gemfile change copyright line from personal names to project 2015-02-19 09:19:51 +01:00
Gemfile.lock upgrade to cucumber 2.0 2015-04-30 18:15:46 +02:00
LICENCE.TXT We are at 2016 for the license 2016-01-04 18:13:05 +01:00
profile.lua readding profile.lua 2013-07-02 22:51:21 +02:00
Rakefile add raketask for clearing test cache files 2014-10-17 15:13:06 +02:00
README.md Add link to documentation in the wiki 2015-05-02 15:18:13 +02:00
taginfo.json Add taginfo checker script and update taginfo 2016-01-26 07:01:11 +01:00

About

The Open Source Routing Machine is a high performance routing engine written in C++11 designed to run on OpenStreetMap data.

Current build status

build config branch status
Linux  master Build Status
Linux  develop Build Status
Windows master/develop Build status
LUAbind fork  master Build Status

Building

For instructions on how to build and run OSRM, please consult the Wiki.

To quickly try OSRM use our free and daily updated online service

Documentation

See the Wiki's server API documentation as well as the library API documentation

References in publications

When using the code in a (scientific) publication, please cite

@inproceedings{luxen-vetter-2011,
 author = {Luxen, Dennis and Vetter, Christian},
 title = {Real-time routing with OpenStreetMap data},
 booktitle = {Proceedings of the 19th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems},
 series = {GIS '11},
 year = {2011},
 isbn = {978-1-4503-1031-4},
 location = {Chicago, Illinois},
 pages = {513--516},
 numpages = {4},
 url = {http://doi.acm.org/10.1145/2093973.2094062},
 doi = {10.1145/2093973.2094062},
 acmid = {2094062},
 publisher = {ACM},
 address = {New York, NY, USA},
}