在VC6中使用boost1.33.1的lexical_cast编译不能通过的问题

dwlitt 2007-04-14 01:40:58
#include <boost/lexical_cast.hpp>
#include <iostream>

void boost_lexical()
{
using boost::lexical_cast;
int a=10;
double b=20;

a = lexical_cast<int>("123");
b = lexical_cast<double>("123.12");
std::cout<<a<<std::endl;
std::cout<<b<<std::endl;
}
int main()
{
boost_lexical();
return 0;
}
//////////////////////////////////
Compiling...
main.cpp
F:\000\boost\myboost\main.cpp(15) : error C2062: type 'int' unexpected
F:\000\boost\myboost\main.cpp(16) : error C2062: type 'double' unexpected
Error executing cl.exe.

myboost.exe - 2 error(s), 0 warning(s)
////////////////////////////////////////
为什么不能编译通过呢?哪位大大告诉一生?
我的环境:VC6+SP6+WINXPSP2
另:boost的包含路径已经配置好了的
...全文
282 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dwlitt 2007-04-14
  • 打赏
  • 举报
回复
asdf
dwlitt 2007-04-14
  • 打赏
  • 举报
回复
果然是VC6中using的问题,在VC8(.NET2005)中编译就没有问题!
解决的方法:(两种都可以的,随便选用)
(1)引进命名空间:
//using boost::lexical_cast; //这个在VC6中有问题的,不能引进名字空间boost
using namespace boost;

(2)调用时加上命名空间:
//a = lexical_cast<int>("123"); //不带名字空间
//b = lexical_cast<double>("123.12"); //不带名字空间,有问题

a = boost::lexical_cast<int>("123");
b = boost::lexical_cast<double>("123.12"); //OK, 没问题

////////////////////////////////////////////////
谢谢楼上的,回头给分!
roger_77 2007-04-14
  • 打赏
  • 举报
回复
改为:

//using boost::lexical_cast;
int a=10;
double b=20;

a = boost::lexical_cast<int>("123");
b = boost::lexical_cast<double>("123.12");



命名空间与模板特化的问题.
orc1984 2007-04-14
  • 打赏
  • 举报
回复
也有可能你库没有加对路径
Aresky 2007-04-14
  • 打赏
  • 举报
回复
写成 a = boost::lexical_cast<int>("123"); 试试
sinall 2007-04-14
  • 打赏
  • 举报
回复
#include <boost/lexical_cast.hpp>
#include <iostream>
void boost_lexical()
{
using namespace boost;
int a=10;
double b=20;

a = lexical_cast<int>("123");
b = lexical_cast<double>("123.12");
std::cout<<a<<std::endl;
std::cout<<b<<std::endl;
}
int main()
{
boost_lexical();
return 0;
}
已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 GridLayout是一种在Android系统应用的布局方法,它通过构建二维网格来组织界面组件,为开发者提供了一个便捷且多样的途径来布置用户界面元素。在这个详尽的阐释,我们将全面研究GridLayout的操作方式、其独有特性以及如何在实际的项目开发高效地运用它。 GridLayout的关键在于其网格构造。在GridLayout,每个控件可以占据一个或多个网格单元,这些单元通过行列坐标进行标识。通过设定控件的`android:layout_row`和`android:layout_column`属性,开发者可以明确控件在网格的位置。比如,`android:layout_row="1"`意味着该控件位于第二行,而`android:layout_column="2"`则表示该控件位于第三列。 另外,GridLayout还支持设置控件能够跨越的网格单元数目,这通过`android:layout_rowSpan`和`android:layout_columnSpan`属性来实现。假如一个控件的`layout_rowSpan="2"`,那么它将覆盖两行的区域,`layout_columnSpan="3"`则会导致其横跨三列。这种高度的适应性使得GridLayout能够满足各种复杂的界面设计需求。 在GridLayout的应用,控件的大小一般会自动适配以填满整个网格单元。不过,开发者也可以通过`android:layout_width`和`android:layout_height`属性来设定确切的尺寸,或者使用`android:layout_weight`属性来分配剩余的空间...

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧