From 2fb634269fbb292d10efb75237632c5227feeafb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Ka=CC=88fer?= Date: Thu, 3 Jul 2014 01:41:38 -0700 Subject: [PATCH] tuple is explicit in gcc's stl --- include/llmr/style/style.hpp | 2 +- src/style/style_parser.cpp | 62 ++++++++++++++++++------------------ 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/include/llmr/style/style.hpp b/include/llmr/style/style.hpp index 3020a5494..dcdfa36bc 100644 --- a/include/llmr/style/style.hpp +++ b/include/llmr/style/style.hpp @@ -19,7 +19,7 @@ class Sprite; class Source; class StyleLayer; class StyleLayerGroup; -class BackgroundProperties; +struct BackgroundProperties; class Style { public: diff --git a/src/style/style_parser.cpp b/src/style/style_parser.cpp index 5c5c01817..b26f233cc 100644 --- a/src/style/style_parser.cpp +++ b/src/style/style_parser.cpp @@ -229,13 +229,13 @@ template std::tuple> StyleParser::parseFunction(JSVal value) { if (!value.HasMember("fn")) { fprintf(stderr, "[WARNING] function must specify a function name\n"); - return false; + return std::tuple> { false, ConstantFunction(T()) }; } JSVal value_fn = value["fn"]; if (!value_fn.IsString()) { fprintf(stderr, "[WARNING] function must specify a function type\n"); - return false; + return std::tuple> { false, ConstantFunction(T()) }; } const std::string type { value_fn.GetString(), value_fn.GetStringLength() }; @@ -243,45 +243,45 @@ std::tuple> StyleParser::parseFunction(JSVal value) { if (type == "linear") { if (!value.HasMember("z")) { fprintf(stderr, "[WARNING] linear function must specify a base zoom level\n"); - return false; + return std::tuple> { false, ConstantFunction(T()) }; } if (!value.HasMember("val")) { fprintf(stderr, "[WARNING] linear function must specify a base value\n"); - return false; + return std::tuple> { false, ConstantFunction(T()) }; } const float z_base = parseFunctionArgument(value["z"]); const T val = parseFunctionArgument(value["val"]); const float slope = value.HasMember("slope") ? parseFunctionArgument(value["slope"]) : 1; const T min = value.HasMember("min") ? parseFunctionArgument(value["min"]) : T(); const T max = value.HasMember("max") ? parseFunctionArgument(value["max"]) : T(); - return { true, LinearFunction(val, z_base, slope, min, max) }; + return std::tuple> { true, LinearFunction(val, z_base, slope, min, max) }; } else if (type == "exponential") { if (!value.HasMember("z")) { fprintf(stderr, "[WARNING] exponential function must specify a base zoom level\n"); - return false; + return std::tuple> { false, ConstantFunction(T()) }; } if (!value.HasMember("val")) { fprintf(stderr, "[WARNING] exponential function must specify a base value\n"); - return false; + return std::tuple> { false, ConstantFunction(T()) }; } const float z_base = parseFunctionArgument(value["z"]); const T val = parseFunctionArgument(value["val"]); const float slope = value.HasMember("slope") ? parseFunctionArgument(value["slope"]) : 1; const T min = value.HasMember("min") ? parseFunctionArgument(value["min"]) : T(); const T max = value.HasMember("max") ? parseFunctionArgument(value["max"]) : T(); - return { true, ExponentialFunction(val, z_base, slope, min, max) }; + return std::tuple> { true, ExponentialFunction(val, z_base, slope, min, max) }; } else if (type == "stops") { if (!value.HasMember("stops")) { fprintf(stderr, "[WARNING] stops function must specify a stops array\n"); - return false; + return std::tuple> { false, ConstantFunction(T()) }; } JSVal value_stops = value["stops"]; if (!value_stops.IsArray()) { fprintf(stderr, "[WARNING] stops function must specify a stops array\n"); - return false; + return std::tuple> { false, ConstantFunction(T()) }; } std::vector> stops; @@ -290,28 +290,29 @@ std::tuple> StyleParser::parseFunction(JSVal value) { if (stop.IsArray()) { if (stop.Size() != 2) { fprintf(stderr, "[WARNING] stop must have zoom level and value specification\n"); + return std::tuple> { false, ConstantFunction(T()) }; } JSVal z = stop[rapidjson::SizeType(0)]; if (!z.IsNumber()) { fprintf(stderr, "[WARNING] zoom level in stop must be a number\n"); - return false; + return std::tuple> { false, ConstantFunction(T()) }; } stops.emplace_back(z.GetDouble(), parseFunctionArgument(stop[rapidjson::SizeType(1)])); } else { fprintf(stderr, "[WARNING] function argument must be a numeric value\n"); - return false; + return std::tuple> { false, ConstantFunction(T()) }; } } - return { true, StopsFunction(stops) }; + return std::tuple> { true, StopsFunction(stops) }; } else { fprintf(stderr, "[WARNING] function type '%s' is unknown\n", type.c_str()); } - return false; + return std::tuple> { false, ConstantFunction(T()) }; } @@ -370,28 +371,28 @@ bool StyleParser::parseOptionalProperty(const char *property_name, T &target, JS template<> std::tuple StyleParser::parseProperty(JSVal value, const char *property_name) { if (!value.IsString()) { fprintf(stderr, "[WARNING] value of '%s' must be a string\n", property_name); - return false; + return std::tuple { false, std::string() }; } - return { true, std::string { value.GetString(), value.GetStringLength() } }; + return std::tuple { true, { value.GetString(), value.GetStringLength() } }; } template<> std::tuple StyleParser::parseProperty(JSVal value, const char *property_name) { if (!value.IsString()) { fprintf(stderr, "[WARNING] value of '%s' must be a string\n", property_name); - return false; + return std::tuple { false, TranslateAnchorType::Default }; } - return { true, parseTranslateAnchorType({ value.GetString(), value.GetStringLength() }) }; + return std::tuple { true, parseTranslateAnchorType({ value.GetString(), value.GetStringLength() }) }; } template<> std::tuple StyleParser::parseProperty(JSVal value, const char *property_name) { if (!value.IsString()) { fprintf(stderr, "[WARNING] value of '%s' must be a string\n", property_name); - return false; + return std::tuple { false, RotateAnchorType::Default }; } - return { true, parseRotateAnchorType({ value.GetString(), value.GetStringLength() }) }; + return std::tuple { true, parseRotateAnchorType({ value.GetString(), value.GetStringLength() }) }; } template<> std::tuple StyleParser::parseProperty(JSVal value, const char *property_name) { @@ -406,22 +407,22 @@ template<> std::tuple StyleParser::parseProperty(JSVal } if (transition.duration == 0 && transition.delay == 0) { - return false; + return std::tuple { false, std::move(transition) }; } - return { true, std::move(transition) }; + return std::tuple { true, std::move(transition) }; } template<> std::tuple> StyleParser::parseProperty(JSVal value, const char *property_name) { if (value.IsObject()) { return parseFunction(value); } else if (value.IsNumber()) { - return { true, ConstantFunction(value.GetDouble()) }; + return std::tuple> { true, ConstantFunction(value.GetDouble()) }; } else if (value.IsBool()) { - return { true, ConstantFunction(value.GetBool()) }; + return std::tuple> { true, ConstantFunction(value.GetBool()) }; } else { fprintf(stderr, "[WARNING] value of '%s' must be convertible to boolean, or a boolean function\n", property_name); - return false; + return std::tuple> { false, ConstantFunction(false) }; } } @@ -429,13 +430,12 @@ template<> std::tuple> StyleParser::parseProperty(JSVal va if (value.IsObject()) { return parseFunction(value); } else if (value.IsNumber()) { - return { true, ConstantFunction(value.GetDouble()) }; + return std::tuple> { true, ConstantFunction(value.GetDouble()) }; } else if (value.IsBool()) { - return { true, ConstantFunction(value.GetBool()) }; - return true; + return std::tuple> { true, ConstantFunction(value.GetBool()) }; } else { fprintf(stderr, "[WARNING] value of '%s' must be a number, or a number function\n", property_name); - return false; + return std::tuple> { false, ConstantFunction(0) }; } } @@ -443,10 +443,10 @@ template<> std::tuple> StyleParser::parseProperty(JSVal va if (value.IsObject()) { return parseFunction(value); } else if (value.IsString()) { - return { true, ConstantFunction(parseColor(value)) }; + return std::tuple> { true, ConstantFunction(parseColor(value)) }; } else { fprintf(stderr, "[WARNING] value of '%s' must be a color, or a color function\n", property_name); - return false; + return std::tuple> { false, ConstantFunction(Color {{ 0, 0, 0, 0 }}) }; } }