std命名空间
C++标准的的所有成员都被置于std命名空间内,那么从C继承的成员也应该被置于std命名空间;但是测试发现使用继承的C成员不用加std命名空间限定,即使加了也结果也是一样的。很纠结,一直找不到能直接引用C成员的理由说明,求解 c++
[解决办法]
/**
* @file demo.cpp
* @brief
*/
#include <cstddef>
#include <string.h>
char s1[10];
char s2[] = "strcpy";
int main(int argc, char *argv[])
{
::strcpy(s1, s2);
std::strcpy(s1, s2);
return 0;
}
#include <cstring>
void func(void)
{
::strcpy(s1, s2);
std::strcpy(s1, s2);
}
g++ -Wall -o demo demo.cpp
demo.cpp: In function 'int main(int, char**)':
demo.cpp:16: error: 'strcpy' is not a member of 'std'