-<Godbolt readOnly={false} url="https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:c%2B%2B,selection:(endColumn:76,endLineNumber:31,positionColumn:76,positionLineNumber:31,selectionStartColumn:76,selectionStartLineNumber:31,startColumn:76,startLineNumber:31),source:'//+examples/range_loop.cpp+-*-C%2B%2B-*-%0A//+SPDX-License-Identifier:+Apache-2.0+WITH+LLVM-exception%0A%0A%23include+%3Cbeman/optional/optional.hpp%3E%0A%23include+%3Ciostream%3E%0A%0Aint+main()+%7B%0A++++//+Example+from+P3168R1:+basic+range+loop+over+C%2B%2B26+optional.%0A%0A++++beman::optional::optional%3Cint%3E+empty_opt%7B%7D%3B%0A++++for+(%5B%5Bmaybe_unused%5D%5D+const+auto%26+i+:+empty_opt)+%7B%0A++++++++//+Should+not+see+this+in+console.%0A++++++++std::cout+%3C%3C+%22%5C%22for+each+loop%5C%22+over+C%2B%2B26+optional:+empty_opt%5Cn%22%3B%0A++++%7D%0A%0A++++beman::optional::optional%3Cint%3E+opt%7B__cplusplus%7D%3B%0A++++for+(const+auto%26+i+:+opt)+%7B%0A++++++++//+Should+see+this+in+console.%0A++++++++std::cout+%3C%3C+%22%5C%22for+each+loop%5C%22+over+C%2B%2B26+optional:+opt+%3D+%22+%3C%3C+i+%3C%3C+%22%5Cn%22%3B%0A++++%7D%0A%0A++++return+0%3B%0A%7D%0A%0A//+%23+build+example:%0A//+$+cmake+--workflow+--preset+gcc-14%0A//%0A//+%23+run+example:%0A//+$+.build/gcc-14/examples/RelWithDebInfo/range_loop%0A//++++++++++++++++++++++++++++++++++++++++++++++++%23+note:+1st+log+(empty_opt)+is+missing+from+console!!%0A//+%22for+each+loop%22+over+C%2B%2B26+optional:+opt+%3D+26++%23+2nd+log+(non+empty+opt)'),l:'5',n:'0',o:'C%2B%2B+source+%231',t:'0')),k:48.951858549461555,l:'4',m:50,n:'0',o:'',s:0,t:'0'),(g:!((h:executor,i:(argsPanelShown:'1',compilationPanelShown:'0',compiler:gsnapshot,compilerName:'',compilerOutShown:'0',execArgs:'',execStdin:'',fontScale:14,fontUsePx:'0',j:5,lang:c%2B%2B,libs:!((name:beman_optional,ver:trunk)),options:'-std%3Dc%2B%2B26',overrides:!(),runtimeTools:!(),source:1,stdinPanelShown:'1',wrap:'1'),l:'5',n:'0',o:'Executor+x86-64+gcc+(trunk)+(C%2B%2B,+Editor+%231)',t:'0')),header:(),k:100,l:'4',m:25,n:'0',o:'',s:0,t:'0'),(g:!((h:executor,i:(argsPanelShown:'1',compilationPanelShown:'0',compiler:clang_trunk,compilerName:'',compilerOutShown:'0',execArgs:'',execStdin:'',fontScale:14,fontUsePx:'0',j:6,lang:c%2B%2B,libs:!((name:beman_optional,ver:trunk)),options:'-std%3Dc%2B%2B26',overrides:!(),runtimeTools:!(),source:1,stdinPanelShown:'1',wrap:'1'),l:'5',n:'0',o:'Executor+x86-64+clang+(trunk)+(C%2B%2B,+Editor+%231)',t:'0')),header:(),k:99.99999999999999,l:'4',m:25,n:'0',o:'',s:0,t:'0')),k:100,l:'3',n:'0',o:'',t:'0')),version:4" />
0 commit comments