C标准库 – std :: setenv vs setenv
发布时间:2020-12-16 05:22:22 所属栏目:百科 来源:网络整理
导读:我有一个简单的调用std :: setenv,它工作在我的 Linux发行版gcc下找到.但是,在Mac OS X上使用clang时,我会收到以下错误. error: no member named 'setenv' in namespace 'std'; did you mean simply 'setenv'?std::setenv(name.c_str(),value.c_str(),true);
我有一个简单的调用std :: setenv,它工作在我的
Linux发行版gcc下找到.但是,在Mac OS X上使用clang时,我会收到以下错误.
error: no member named 'setenv' in namespace 'std'; did you mean simply 'setenv'? std::setenv(name.c_str(),value.c_str(),true); 我相信我已经读过某个地方,setenv是C11中命名空间std的一部分,但现在我不确定. 问题:应该使用setenv或std :: setenv,为什么会这样? 解决方法
我在
cppr上没有任何类似std :: setenv的任何东西,只有
std::getenv 在其文档中引用了POSIX功能
setenv ,这当然不在命名空间std中.
所以既然你没有调用C标准函数,那么普通的setenv应该是这样的,因为定义函数定义它的标准是什么.请注意,std :: setenv是允许的(但不是必需的)工作. (另见hvd’s comment.) 对于标准爱好者:setenv只提及
来自N3797 18.10.5.它确实不是C标准函数,因此不一定在命名空间std中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |