从MSVC14切换到MSVC16导致“编译器的堆空间不足(C1060)”错误

约翰尼斯·史翠克(Johannes Stricker)

我正在尝试从Visual Studio 14 2015编译器切换Visual Studio 16 2019到编译我的项目(也尝试过Visual Studio 15 2017,但这导致了同样的问题)。我正在使用irrequietus / typestring,它与旧的编译器可以很好地工作,但是现在会导致错误。

这是一个应该与类型字符串一起使用的类:

// my_custom_class.h
template<typename T>
class MyCustomClass
{
public:
  static bool compareTheTypestring(const std::string& other) const {
    return std::strcmp(data(), other.c_str()) == 0;
  }
}

这是我使用课程的方式:

// use_it.cpp
#include "typestring.hh"
#include "my_custom_class.h"
typedef MyCustomClass<typestring_is("Foo")> FooCompare;

这会吐出以下错误typestring.hh

  • compiler is out of heap space (C1060)

还有更多错误use_it.cpp

  • irqus::typeek: no matching overloaded function found (C2672)
  • Failed to specialize function template 'unknown-type irqus::typeek(irqus::typestring<C...>)'
  • 无法推断出模板参数 MyCustomClass

该存储库包含一个类似的问题,但是维护者似乎没有答复。我试图找到替代的typestring实现,但是找不到。有人可以帮我解决这个问题吗?

吉纳里

问题已在一月报告,此后已回复0。似乎图书馆已不再更新...也许正在寻找替代解决方案

您确实应该在问题中添加尝试做的细节。在我了解您要实现的目标之前,必须通读外部库。我最好的建议是:寻找替代方案。编译时字符串还有其他方法。模板参数可能不是最佳答案。

如果您真的想使用模板参数字符串,则必须自己进行修复。该库可能依赖未定义的行为。所以现在坏了。我正在尝试,但是不是很简单。您可能需要在宏的宏中使用charizing运算符来拆分字符串,然后将char放入元组类型...

template<char c>
class CharType {
public:
    static constexpr char Char = c;
};

using FooString = std::tuple<CharType<'F'>, CharType<'o'>, CharType<'o'>>;

或类似的东西。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Qt:编译器的堆空间不足

来自分类Dev

C++ MSVC/GCC/Clang 编译器错误

来自分类Dev

从cc编译器切换到g ++编译器时出现链接器错误

来自分类Dev

这是MSVC ++编译器错误吗?

来自分类Dev

MSVC编译器可能的错误

来自分类Dev

MSVC中可能的编译器错误

来自分类Dev

MSVC多行宏编译器错误

来自分类Dev

MSVC编译器可能的错误

来自分类Dev

使用更新的gcc编译器从c ++切换到代码块,这会导致我的源代码中出现错误,这些错误已使用旧的gcc编译器v3很好地编译

来自分类Dev

Cythonize以“致命错误C1002:编译器在第2遍中的堆空间不足”结尾

来自分类Dev

什么是-D编译器标志C ++(clang,GNU,MSVC)

来自分类Dev

什么是-D编译器标志C ++(clang,GNU,MSVC)

来自分类Dev

MSVC-C2668对重载函数的模棱两可的调用-它是编译器错误吗?

来自分类Dev

详尽切换的编译器错误

来自分类Dev

msvc编译器的native-maven-plugin错误“命令行太长。”

来自分类Dev

使用枚举参数重载模板时出现 MSVC 编译器错误

来自分类Dev

为什么不蚀将编译器切换到Java 8?

来自分类Dev

无法在Eclipse Helios中切换到编译器符合性级别1.8

来自分类Dev

QT Creator 编译器崩溃(MSVC 2015,Qt 5.8)

来自分类Dev

编译器错误-想法不足

来自分类Dev

嵌套循环导致内存不足错误:Java堆空间

来自分类常见问题

与所有其他编译器一起使用的MSVC错误C2280(试图引用已删除的功能)

来自分类Dev

与所有其他编译器一起使用的MSVC错误C2280(试图引用已删除的功能)

来自分类Dev

错误的重载导致编译器错误

来自分类Dev

使用指定的初始化程序的MSVC12(VS2013)中可能的编译器错误

来自分类Dev

切换到用户空间

来自分类Dev

使用MSVC ++ 2013进行编译时,“ CXX编译器没有已知功能”

来自分类Dev

使用MSVC 14.0(VS 2015)编译Boost时的未知编译器版本

来自分类Dev

在 MSVC 15.3.3 (VS 2017) 上使用 Boost 编译时出现未知的编译器版本

Related 相关文章

  1. 1

    Qt:编译器的堆空间不足

  2. 2

    C++ MSVC/GCC/Clang 编译器错误

  3. 3

    从cc编译器切换到g ++编译器时出现链接器错误

  4. 4

    这是MSVC ++编译器错误吗?

  5. 5

    MSVC编译器可能的错误

  6. 6

    MSVC中可能的编译器错误

  7. 7

    MSVC多行宏编译器错误

  8. 8

    MSVC编译器可能的错误

  9. 9

    使用更新的gcc编译器从c ++切换到代码块,这会导致我的源代码中出现错误,这些错误已使用旧的gcc编译器v3很好地编译

  10. 10

    Cythonize以“致命错误C1002:编译器在第2遍中的堆空间不足”结尾

  11. 11

    什么是-D编译器标志C ++(clang,GNU,MSVC)

  12. 12

    什么是-D编译器标志C ++(clang,GNU,MSVC)

  13. 13

    MSVC-C2668对重载函数的模棱两可的调用-它是编译器错误吗?

  14. 14

    详尽切换的编译器错误

  15. 15

    msvc编译器的native-maven-plugin错误“命令行太长。”

  16. 16

    使用枚举参数重载模板时出现 MSVC 编译器错误

  17. 17

    为什么不蚀将编译器切换到Java 8?

  18. 18

    无法在Eclipse Helios中切换到编译器符合性级别1.8

  19. 19

    QT Creator 编译器崩溃(MSVC 2015,Qt 5.8)

  20. 20

    编译器错误-想法不足

  21. 21

    嵌套循环导致内存不足错误:Java堆空间

  22. 22

    与所有其他编译器一起使用的MSVC错误C2280(试图引用已删除的功能)

  23. 23

    与所有其他编译器一起使用的MSVC错误C2280(试图引用已删除的功能)

  24. 24

    错误的重载导致编译器错误

  25. 25

    使用指定的初始化程序的MSVC12(VS2013)中可能的编译器错误

  26. 26

    切换到用户空间

  27. 27

    使用MSVC ++ 2013进行编译时,“ CXX编译器没有已知功能”

  28. 28

    使用MSVC 14.0(VS 2015)编译Boost时的未知编译器版本

  29. 29

    在 MSVC 15.3.3 (VS 2017) 上使用 Boost 编译时出现未知的编译器版本

热门标签

归档