From the standard N4687:
20.5.4.3.2 Macro names
1 A translation unit that includes a standard library header shall not
#define or #undef names declared in any standard library header.2 A translation unit shall not #define or #undef names lexically
identical to keywords, to the identifiers listed in Table 4, or to the
attribute-tokens described in 10.6.
So what you are trying to do is prohibited by the standard!
Additionally in this specific case it won’t work because you are substituting endl for a string of some sort, causing the preprocessor to generate this: std::"\n\r" which causes the compilation to fail.
If you wan’t to replace std::endl by "\r\n" (BTW: not "\n\r") then do it by hand or write a script to do it.
8
solved C++ unable to call std::endl