Move lambda out of unevaluated context
This commit is contained in:
		
							parent
							
								
									ebb3c03293
								
							
						
					
					
						commit
						6b5334c167
					
				
					 2 changed files with 14 additions and 8 deletions
				
			
		|  | @ -320,15 +320,18 @@ class input_adapter | |||
|                  int>::type = 0> | ||||
|     input_adapter(IteratorType first, IteratorType last) | ||||
|     { | ||||
| #ifndef NDEBUG | ||||
|         // assertion to check that the iterator range is indeed contiguous,
 | ||||
|         // see http://stackoverflow.com/a/35008842/266378 for more discussion
 | ||||
|         assert(std::accumulate( | ||||
|                    first, last, std::pair<bool, int>(true, 0), | ||||
|                    [&first](std::pair<bool, int> res, decltype(*first) val) | ||||
|         const auto is_contiguous = std::accumulate( | ||||
|                                        first, last, std::pair<bool, int>(true, 0), | ||||
|                                        [&first](std::pair<bool, int> res, decltype(*first) val) | ||||
|         { | ||||
|             res.first &= (val == *(std::next(std::addressof(*first), res.second++))); | ||||
|             return res; | ||||
|         }).first); | ||||
|         }).first; | ||||
|         assert(is_contiguous); | ||||
| #endif | ||||
| 
 | ||||
|         // assertion to check that each element is 1 byte long
 | ||||
|         static_assert( | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue