From 46a7e46068db11c94c6b74c24d2c137c56b807f8 Mon Sep 17 00:00:00 2001 From: Dennis Luxen Date: Fri, 16 Jan 2015 18:12:21 +0100 Subject: [PATCH] serialize lvalues as MSVC barfs out on serializing the return value of the conditional operator --- extractor/extraction_containers.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/extractor/extraction_containers.cpp b/extractor/extraction_containers.cpp index 6e12db18a..3bfcb5cee 100644 --- a/extractor/extraction_containers.cpp +++ b/extractor/extraction_containers.cpp @@ -367,9 +367,24 @@ void ExtractionContainers::PrepareData(const std::string &output_file_name, file_out_stream.write((char *)&integer_weight, sizeof(int)); file_out_stream.write((char *)&edge_iterator->name_id, sizeof(unsigned)); - file_out_stream.write((char *)&(edge_iterator->is_roundabout ? yes : no), sizeof(bool)); - file_out_stream.write((char *)&(edge_iterator->is_in_tiny_cc ? yes : no), sizeof(bool)); - file_out_stream.write((char *)&(edge_iterator->is_access_restricted ? yes : no), sizeof(bool)); + if (edge_iterator->is_roundabout) + { + file_out_stream.write((char *)&yes, sizeof(bool)); + } else { + file_out_stream.write((char *)&no, sizeof(bool)); + } + if (edge_iterator->is_in_tiny_cc) + { + file_out_stream.write((char *)&yes, sizeof(bool)); + } else { + file_out_stream.write((char *)&no, sizeof(bool)); + } + if (edge_iterator->is_access_restricted) + { + file_out_stream.write((char *)&yes, sizeof(bool)); + } else { + file_out_stream.write((char *)&no, sizeof(bool)); + } // cannot take adress of bit field, so use local const TravelMode travel_mode = edge_iterator->travel_mode;