#if ( defined(__BORLANDC__) || _MSC_VER ) && !defined( __GNUG__ )

river4321 2008-04-29 10:43:52
#if ( defined(__BORLANDC__) || _MSC_VER ) && !defined( __GNUG__ )
inline float abs (float v) { return (float)fabs( v); }
inline double abs (double v) { return fabs( v); }
inline long double abs (long double v) { return fabsl( v); }
#endif


Error 1 error C2084: function 'float abs(float)' already has a body e:\2008 pointposition\tclmatrix.h 158

Error 2 error C2084: function 'double abs(double)' already has a body e:\2008 pointposition\tclmatrix.h 159

Error 3 error C2084: function 'long double abs(long double)' already has a body e:\2008 pointposition\tclmatrix.h 160
//****************************************************************************
matrixT& operator += (const matrixT& m) _THROW_MATRIX_ERROR;

Warning 6 warning C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow) e:\2008 pointposition\tclmatrix.h 241


在vc6.0里面是不报错的,2008里面就出现上面一堆东西,不知道怎么回事?
...全文
878 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2008-04-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ljuncong 的回复:]
在前边加上
#define __GNUG__

[/Quote]
不建议这么用
因为
__GNUG__是g++的标识
__GNUC__是gcc的标识
mymtom 2008-04-30
  • 打赏
  • 举报
回复
楼主的问题在于代码开发时还没有VS2008, 所以修改_MSC_VER的判断.
在VS2005的math.h里已经有
inline long __CRTDECL abs(__in long _X)
{return (labs(_X)); }
等的定义了, 所以会报错, 而VS2005的_MSC_VER为1400, 所以建议改为:

#include <cmath>
#if (defined(__BORLANDC__) || (_MSC_VER < 1400)) && !defined(__GNUG__)
inline float abs (float v) { return (float)fabs( v); }
inline double abs (double v) { return fabs( v); }
inline long double abs (long double v) { return fabsl( v); }
#endif

这样应该在VC6, VS2005, VS2008上都能正确编译.
river4321 2008-04-30
  • 打赏
  • 举报
回复
多谢各位!
baihacker 2008-04-29
  • 打赏
  • 举报
回复

fortran 2003


C++矩阵库:blitz(不错,泛型写的) (Cooperware感觉这个写得太简单了,但是很清晰)
C矩阵库:Meschach(这个代码没有看过)
HelloDan 2008-04-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 river4321 的回复:]
baihacker的回答是正确的,&& 0 是什么情况?还有
matrixT& operator += (const matrixT& m) _THROW_MATRIX_ERROR;

Warning 6 warning C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow) e:\2008 pointposition\tclmatrix.h 241


一堆的警告不知道怎么回事?

我不是计算机专业,所以老觉得算出数据来就结了,真想好好学下fortran用算了,c++有关语言本身的内容就…
[/Quote]

劝你不要用Fortran,除非你周围的人都在用,FORTRAN现在只是用于数值算法方面的使用,这方面C/C++也非常出色。要不用MATLAB还好一点,如果不想学C/C++. 我就学过FORTRAN,就是为了用来计算的,不是太难学,只是周围会的人太少了,而且资料也少得可以,总之有问题了你不知怎样解决,那样才是最痛苦。不过如果你还在校可能图书馆里面有一些吧,我这里的图书馆有一大堆6 70年代的手抄的,新的非常少,不过标准现在好像是FORTRAN90了吧,也有些东西不同了,不过应该向下兼容。
ouyh12345 2008-04-29
  • 打赏
  • 举报
回复
在命名空间里使用它们
Treazy 2008-04-29
  • 打赏
  • 举报
回复
重定义了

看你用的是哪个了,一般库里的预编译开关不要进行修改

你可以改你程序中的开关
Treazy 2008-04-29
  • 打赏
  • 举报
回复
hacker的做法不提倡!
baihacker 2008-04-29
  • 打赏
  • 举报
回复
#if ( defined(__BORLANDC__)  ¦¦ _MSC_VER ) && !defined( __GNUG__ ) 
改成
#if ( defined(__BORLANDC__) ¦¦ _MSC_VER ) && !defined( __GNUG__ ) && 0
river4321 2008-04-29
  • 打赏
  • 举报
回复
baihacker的回答是正确的,&& 0 是什么情况?还有
matrixT& operator += (const matrixT& m) _THROW_MATRIX_ERROR;

Warning 6 warning C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow) e:\2008 pointposition\tclmatrix.h 241


一堆的警告不知道怎么回事?

我不是计算机专业,所以老觉得算出数据来就结了,真想好好学下fortran用算了,c++有关语言本身的内容就太多了,不可能把时间都花在语言上吧?众位高手怎么认为?
ljuncong 2008-04-29
  • 打赏
  • 举报
回复
在前边加上
#define __GNUG__
摘 要 针对高校教师教学业绩管理流程复杂、数据填报不规范、多级审核效率低、统计分析滞后等问题,本文设计并实现一套基于SpringBoot+Vue前后端分离架构的高校教师教学业绩综合管理系统。系统后端以SpringBoot处理业务逻辑与接口开发,前端用Vue构建交互界面,MySQL存储数据,MD5加密保障账号安全,具备低耦合、易扩展、易维护特性。 系统按权限划分为教师、学院管理员、学校管理员三级角色,构建闭环式业绩管理体系。教师可完成信息维护、业绩录入、成果申报、审核跟踪、档案导出、智能咨询与社区互动;学院管理员负责教师管理、业绩初审、数据汇总、通知发布与修正申请;学校管理员承担权限分配、数据维护、业绩终审、统计分析、公告发布与日志审计。 系统实现业绩填报、初审、终审、统计归档全流程线上化,支持批量导入、敏感词过滤、数据可视化、7×24小时AI咨询等功能,规范管理流程、减少统计误差、提升审核效率。测试表明,系统满足高校教学业绩精细化、规范化、信息化管理需求,为教师考核、绩效评定、教学评估提供数据支撑,提升高校教学管理智能化水平。 关键词: SpringBoot;Vue;教学业绩管理;三级权限;前后端分离
内容概要:本文围绕“基于雅可比伪逆迭代的双臂协同轨迹规划与跟踪误差收敛性研究”展开,通过Matlab代码实现双机械臂系统的协同运动控制与轨迹跟踪。研究采用雅可比伪逆法求解冗余机械臂的逆运动学问题,实现末端执行器在笛卡尔空间中的精确轨迹规划,并引入迭代优化机制提升双臂协同作业的精度与稳定性。重点分析了轨迹跟踪过程中误差的收敛特性,验证了所提控制算法在多自由度强耦合系统中的有效性和鲁棒性,适用于复杂环境下需要高精度配合的机器人协同操作任务。该研究属于科研仿真复现类工作,融合了机器人运动学理论、数值计算方法与控制算法设计,为多机械臂系统提供了可行的轨迹规划与控制策略参考。; 适合人群:具备扎实的机器人学基础、自动控制理论知识以及良好Matlab编程能力的科研人员或研究生,尤其适合从事多机械臂协同控制、运动规划、逆运动学求解及误差分析等方向的研究者。; 使用场景及目标:①用于多机械臂系统的协同轨迹规划与运动控制算法研究;②深入理解基于雅可比伪逆法的逆运动学求解原理及其在冗余机构中的应用;③分析轨迹跟踪误差的收敛行为,评估控制策略的稳定性与精度;④作为高质量论文复现资源,支撑相关课题的仿真验证、算法对比与改进创新。; 阅读建议:建议结合Matlab代码与机器人运动学经典理论同步学习,重点关注雅可比矩阵的构建、伪逆运算的实现方式、误差反馈机制的设计以及迭代过程中的数值稳定性处理,同时可进一步拓展至非线性优化、避免奇异位形及实时控制策略的改进研究。

65,214

社区成员

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

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