USE_CSTD and USE_CXXSTD not discussed in porters handbook

From: Edward Sanford Sutton, III <>
Date: Thu, 14 Sep 2023 00:17:04 UTC
   I learned about USE_CSTD and USE_CXXSTD more recently. From what I 
can guess, it makes sense to include those variables in ports when the 
original authors have not yet setup passing that to the compiler and it 
is needed for their current code standard or the porter is manually 
providing the build instructions. I know some programs already track the 
standard so that a cmake entry of
in games/warzone but USES=compiler:c++11-lib is set; I'd guess a porting 
error of not updated or a typo, came with a patch October 7th so first 
applied to v4.3.5, but maybe -lib and -lang have a different requirement 
or it controls something different? Another example is audio/mumble 
where both USES and USE_CXXSTD is defined where the cmake build system 
has an entry for 14 as a dependency but before the recent update which 
moved to cmake it was not set or defined in its make system and only 
documented to the user for manually building.
   Porters handbook '17.13.' (trailing dot added why?) mentions things 
like USES=compiler:C++11-lib but I didn't find it clear when I should 
use USES and/or USE_*. It was also not made clear when we need to 
restate that in the ports tree to force proper build environment 
dependencies as opposed to just passing a flag to the compiler.

   While here, anyone mind pointing me in the direction of identifying 
when compiler should be -lang vs -lib other than blind trial and error 
or original author said so?