I noticed the newest version (solidity ^0.8.0) of Open Zep's ERC20.sol standard contract has msg.sender written as _msgSender(); This is the first time i have seen it written this way. It is also giving me problems in Remix saying it is an "undeclared identifier". It is in several of the functions including _transfer below. Can anyone explain what might be going on and why i am getting in the error in Remix? Also, is this new syntax.... changed from msg.sender to _msgSender()?
function transfer(address to, uint256 amount) public virtual override returns (bool) {
address owner = _msgSender();
_transfer(owner, to, amount);
return true;
}