From cbb3de625efbe0cfd057a3fb02c24eb571eafdc3 Mon Sep 17 00:00:00 2001 From: Bjarne Stroustrup Date: Sun, 2 Apr 2017 20:39:55 -0400 Subject: [PATCH] add example to F.21 --- CppCoreGuidelines.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/CppCoreGuidelines.md b/CppCoreGuidelines.md index 82ffe0c..f1ae075 100644 --- a/CppCoreGuidelines.md +++ b/CppCoreGuidelines.md @@ -1,6 +1,6 @@ # C++ Core Guidelines -March 27, 2017 +April 2, 2017 Editors: @@ -2902,7 +2902,15 @@ However, we prefer to be explicit, rather than subtle. In many cases, it may be useful to return a specific, user-defined "Value or error" type. For example: - struct + struct Distance { + int value; + int unit = 1; // 1 mens meters + }; + + Distance d1 = measure(obj1); // access d1.value and d1.unit + auto d2 = measure(obj2); // access d2.value and d2.unit + auto [value, unit] = measure(obj3); // access value and unit; somewhat redundant to people who know measure() + auto [x,y] = measure(obj4); // don't; it's likely to be confusiong The overly-generic `pair` and `tuple` should be used only when the value returned represents to independent entities rather than an abstraction.