| 
					
				 | 
			
			
				@@ -18,14 +18,7 @@ namespace { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Search for other instances to keep the documentation and test suite 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * up-to-date. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-struct FeatureData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  std::string const Uuid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  std::string const Variable; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  std::string const Description; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  bool Warned; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} LookupTable[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+cmExperimental::FeatureData LookupTable[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // CxxModuleCMakeApi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   { "bf70d4b0-9fb7-465c-9803-34014e70d112", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     "CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API", 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -37,17 +30,22 @@ static_assert(sizeof(LookupTable) / sizeof(LookupTable[0]) == 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 static_cast<size_t>(cmExperimental::Feature::Sentinel), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               "Experimental feature lookup table mismatch"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-FeatureData& DataForFeature(cmExperimental::Feature f) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+cmExperimental::FeatureData& DataForFeature(cmExperimental::Feature f) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   assert(f != cmExperimental::Feature::Sentinel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return LookupTable[static_cast<size_t>(f)]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const cmExperimental::FeatureData& cmExperimental::DataForFeature(Feature f) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return ::DataForFeature(f); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 bool cmExperimental::HasSupportEnabled(cmMakefile const& mf, Feature f) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   bool enabled = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  auto& data = DataForFeature(f); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  auto& data = ::DataForFeature(f); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   auto value = mf.GetDefinition(data.Variable); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (value == data.Uuid) { 
			 |