• error: using typedef-name `T' after `class'

template< typename T>
class Factory
{friend class T;
};class Foo
{};int main()
{Factory< Foo > f;return 0;
}

按照 http://stackoverflow.com/questions/6321191/using-friend-in-templates
提供的解决方案是:

使用间接方式:

template< typename T >
class MakeFriend
{
public:typedef T Type;
};template< typename T >
class Factory
{
public:friend class MakeFriend< T >::Type ;
};class Foo
{};int main()
{Factory< Foo > f;return 0;
}

  • error: expected `;' before "m_item"

  • error: ‘m_item’ was not declared in this scope

template< typename T>
class SubTemplate
{
public:typedef T Type;
};template< typename T>
class Wrapper
{SubTemplate< T >::Type m_item ;
};class Foo
{
};int main()
{Wrapper< Foo> a;return 0;
}

  • 从属属性:在模板中依赖于一个template参数(也就是尖括号中typename后面的T啦)的属性(注意,是属性而不是成员哦)。
  • 在使用从属属性的时候,应当在前面加上一个typename关键字,否则就会引发潜在的问题,如下所示。如果在T::someProperty前没有typename关键字,也许编译器会把声明指针用的*认为是用作乘法的乘号。
template <typename T>
class C{
public:void f(){typename T::someProperty* x;};
};

修改后将如:

template< typename T>
class SubTemplate
{
public:typedef T Type;
};template< typename T>
class Wrapper
{typename SubTemplate< T >::Type m_item ; // modify this line
};class Foo
{
};int main()
{Wrapper< Foo> a;return 0;
}

  •  lua 栈溢出问题

程序老是自动访问冲突到某一行, 具体调用过程是 C 调用 lua 在调用 C ,在后面的 C 函数里有如

int CreateMonsters( lua_State* L)
{for( int row = 0; ...){for( int col = 0; ...){int mapid = GetMapID( L);...}}}

经常在调用 CreateMonsters() 函数的位置, 例如

{...CreateMonsters();...}

报访问冲突的错误, 即便在CreateMonsters() 内部加上通篇的 try-catch 也无法扑捉到, 函数尾部能够访问到, 就是推出函数时出错;按照以往经验估计是 栈溢出的问题, 才会如此的“粗暴”, 折腾了一番后, 发现时 int GetMapID( lua_State* L) 的问题:

int GetMapID( lua_State* L)
{lua_pushnumber( L, m_mapid);return 1;
}

row * col 次插入如此多的数据到 栈里, 并且是 多次的 C、lua嵌套调用, 有没有相应合理的 lua_pop( L, n)操作,当然导致某个时刻 从 C 到 lua 异常啦; 当然, 这也是错误使用 该函数, 该函数是给 lua 调用的, 并非给 C。

转载于:https://www.cnblogs.com/Wilson-Loo/archive/2013/04/15/3021326.html

linux 开发异常错误记录相关推荐

  1. Linux系统日检常见问题,linux系统维护常见错误记录

    linux系统维护常见错误记录 发布时间:2008-09-17 21:32:34   作者:佚名   我要评论 一:卸载的时候出现的错误: umount /dev/nb1 device is busy ...

  2. 小明分享|嵌入式LINUX开发日志-错误汇总①

    SSD201 QT移植编译错误解决 book@100ask:~/SSD201/qt-everywhere-src-5.15.0$ ./make.sh mkdir: cannot create dire ...

  3. 【Linux】centOS 错误记录|无法启动网络Failed to start LSB: Bring up/down networking

    目录 Failed to start LSB: Bring up/down networking Failed to mount /sysroot解决方法 Failed to start LSB: B ...

  4. linux开发常用脚本,记录自己常用的一些 Linux Shell 脚本

    常要在 Linux 下分析日志或其他类型的文件,基本用的命令也就 grep, awk, sed, cut, vim, cat, find, xargs, tail, more 或 less.本人工作平 ...

  5. iOS开发异常错误总结之——wait_fences: failed to receive reply: 10004003

    如果在使用UIAlertView的过程中,莫名其妙的出现wait_fences: failed to receive reply: 10004003这个错误,那么十有八九是因为你忘记了关闭键盘. UI ...

  6. <Linux开发>--驱动开发-- 字符设备驱动(3) 过程详细记录

    <Linux开发>–驱动开发-- 字符设备驱动(3) 过程详细记录 驱动开发是建立再系统之上的,前面作者也记录了系统移植的过程记录,如果有兴趣,可进入博主的主页查看相关文章,这里就不添加链 ...

  7. 基于正点原子Linux开发板(ALIENTEK I.MX6U ALPHA V2.2)的个人自学记录

    基于正点原子Linux开发板(ALIENTEK I.MX6U ALPHA V2.2)的个人自学记录 硬件环境 正点原子Linux开发板(ALIENTEK I.MX6U ALPHA V2.2) 底板+核 ...

  8. <Linux开发>linux开发工具- 之-开发使用linux命令记录

    <Linux开发>linux开发工具- 之-开发使用linux命令记录 本文章主要记录开发过程中涉及使用的linux命令. 1.查看磁盘大小分区情况 命令: df -hl` 可查看分区的路 ...

  9. 嵌入式Linux开发——解决uboot无法使用nfs服务从ubuntu中下载文件(TTT、cannot mount等错误)

    前言: 最近在学习正点原子嵌入式Linux开发板uboot的移植实验,移植完之后想测试网络部分的驱动能否工作正常.最后经过测试发现tftp可以正常下载,nfs却一直报错无法下载文件,最后也是折磨了两天 ...

最新文章

  1. vscode 使用ssh密钥登录远程Linux -- vscode remote linux ssh key
  2. 学习python的日常6
  3. android 结束if循环_Android Handler 消息循环机制
  4. 可降阶的高阶微分方程
  5. lambda表达式的日期问题
  6. python笔记之利用scrapy框架爬取糗事百科首页段子
  7. MFC多线程失败:Create Instance failed
  8. Java小程序3Arrays(2015-8-27)
  9. 网页选项卡应用4-12
  10. 驱动精灵、人生限速曲线救国
  11. 【C++ 开根号和平方运算】
  12. FDD下行信道估计的一些知识点
  13. html背景图片固定代码
  14. Springboot+Vue实现仿课堂派
  15. java vad,VAD和CNG的总结
  16. 人机验证 之 验证码插件
  17. 软件工程和软件开发过程
  18. 溯源供应链引擎APS的历史(蔡颖)
  19. Debug 武侠世界
  20. 《Springer》宣布免费对外开放的书籍下载

热门文章

  1. jquery触发点击事件
  2. java semaphorewa_Java并发(十五):并发工具类——信号量Semaphore
  3. birt脚本for循环语句_如何使用 for 循环语句嵌套方法!
  4. Java笔记-AES加解密(PKCS7padding可用)
  5. Python笔记-CAPM(资本资产定价模型)例子
  6. Java笔记-通过反射获取枚举类型中所有数据
  7. Qt笔记-对connect中第5个进行多组实验(对信号与槽进一步认识)
  8. Spring Boot文档阅读笔记-构建SOAP的web Service服务
  9. HTTP之content-type相关
  10. [Err] 1205 - Lock wait timeout exceeded; try restarting transaction Mysql 报错