相关疑难解决方法(0)

为什么"使用命名空间std"被认为是不好的做法?

我已经告诉别人,编写using namespace std;代码是错误的,我应该用std::coutstd::cin直接代替.

为什么被using namespace std;认为是不好的做法?是低效还是冒着声明模糊变量(与名称std空间中的函数具有相同名称的变量)的风险?它会影响性能吗?

c++ namespaces using-directives std c++-faq

2486
推荐指数
36
解决办法
78万
查看次数

template <class T>:错误:'T'没有命名类型

我正在尝试编译一些在Arduino IDE中编译良好的代码,在Visual Studio中支持Arduino(Visual Micro).这是有问题的代码:

template <class T> int EEPROM_writeAnything(int ee, const T& value)
{
    const byte* p = (const byte*)(const void*)&value;
    unsigned int i;
    for (i = 0; i < sizeof(value); i++)
          EEPROM.write(ee++, *p++);
    return i;
}

template <class T> int EEPROM_readAnything(int ee, T& value)
{
    byte* p = (byte*)(void*)&value;
    unsigned int i;
    for (i = 0; i < sizeof(value); i++)
          *p++ = EEPROM.read(ee++);
    return i;
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

app.ino:43:40: error: 'T' does not name a type
:int EEPROM_writeAnything(int ee, const …
Run Code Online (Sandbox Code Playgroud)

c++ arduino visual-studio visual-c++-2010 visual-studio-2015

3
推荐指数
1
解决办法
1511
查看次数