【问题标题】:error: C2039: 'iswspace' : is not a member of 'std', but std::isspace() compiles fine错误:C2039:“iswspace”:不是“std”的成员,但 std::isspace() 编译正常
【发布时间】:2016-03-08 06:23:40
【问题描述】:

我在 VS2008 中遇到了这种奇怪的行为,我可以使用以下代码在新项目中重现:

#include <cctype>
using namespace std;
int main() {
    isspace(' ');
    iswspace(L' ');
    std::isspace(' ');
    std::iswspace(L' '); // <--- ONLY THIS LINE has error
    return 0;
}

std::isspaceiswspace 不会导致编译错误,但 std::iswspace() 会。

我不明白为什么 std::isspace() 会是 std 的成员,但 std::iswspace() 不是。我怀疑这是符合标准的行为。

【问题讨论】:

  • 我认为你需要#include
  • @AndyM 谢谢!您可以将其发布为答案吗?你也知道为什么iswspace() 没有std:: 有效吗?

标签: c++ visual-studio visual-studio-2008 compiler-errors


【解决方案1】:

你需要#include &lt;cwctype&gt;

至于为什么非标准的工作,他们是旧版本。 &lt;cctype&gt; 只是 ctype.h,其中包含旧版本的 iswspace。见msdn:https://msdn.microsoft.com/en-us/library/y13z34da.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多