Boost lexical_cast<std::string>(int) MSVC 2008 bug
Boost lexical_cast<std::string>(int) MSVC 2008 bug
我想使用VC++2008试用Apache Thrift,但遇到了一些无法预见的问题。在调试构建中,我在VC++运行库中得到错误"string iterators incompatible"
。我追踪到对boost::lexical_cast<std::string>(int)
的调用,并能够在一个简单的测试程序中触发该错误。
以下由于提到的迭代器错误而失败(这是使用boost 1.55):
std::string test = boost::lexical_cast<std::string>(5);
在具有正确行为的Release构建中,一切都很好。由于某种原因,这一行只在节俭代码中失败,并且在最小的测试程序中工作。
我已经尝试将_HAS_ITERATOR_DEBUGGING
设置为0,但这没有任何效果,因为调试运行库是使用此标志集编译的。即使在调试版本中,我也尝试选择发布多线程运行时dll,但这并没有导致使用发布dll。这甚至是一个坏主意,因为我使用了其他链接到调试运行时dll的boost编译库。
我已经没有主意了,我该怎么解决这些问题呢?
问题是由于调试构建使用了旧版发布模式库而引起的。
相关文章:
- 为什么在全局范围内使用"extern int a"似乎不行?
- int(c) 和 c-'0' 之间的区别。C++
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- MSVC多行宏编译器错误
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 是否可以从int转换为enum类类型
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- 'short int'持有的值溢出,但"自动"不会溢出?
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- MSVC 中从 _Ty 警告到 int 警告的转换累积
- 缩小从"int"(常量表达式)到"无符号int"的转换 - MSVC vs gc
- 为什么"int & const" MSVC 编译得很好?
- visual x86-64 MSVC++/Intel C++更改int、long等的大小
- Boost lexical_cast<std::string>(int) MSVC 2008 bug
- 比较int和unsigned引用时警告,但比较g++/msvc的const(无ref)时没有警告
- 与MSVC 2015比较bool和int引用时发出警告
- 为什么 MSVC 不针对 char 或 const char* 优化 cout,但它为 int 优化?