免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2279 | 回复: 4
打印 上一主题 下一主题

[C++] 写了段很是fkable的代码,一运行就core,贴出来fk一下c++ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-29 22:15 |只看该作者 |倒序浏览

  1. #include<iostream>


  2. template <typename T, typename... TN>
  3. void f(T t, TN...args)
  4. {
  5. std::cout  << t;
  6. f(t, args...);
  7. }

  8. template <typename T>
  9. void f(T t)
  10. {
  11. }


  12. template <typename... ARGS> void g(ARGS...args)
  13. {
  14. f(args...);
  15. }

  16. int main()
  17. {
  18.   g(1,"2",3.0,'4');
  19.   return 0;
  20. }
复制代码
编译的时候使用g++ -std=c++11

论坛徽章:
0
2 [报告]
发表于 2014-07-29 22:16 |只看该作者
Linux localhost.localdomain 3.14.8-200.fc20.x86_64 #1 SMP Mon Jun 16 21:57:53 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

uname -a输出的系统信息

使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper
目标:x86_64-redhat-linux
配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-isl=/builddir/build/BUILD/gcc-4.8.2-20131212/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20131212/obj-x86_64-redhat-linux/cloog-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
线程模型:posix
gcc 版本 4.8.2 20131212 (Red Hat 4.8.2-7) (GCC)

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
3 [报告]
发表于 2014-07-29 22:55 |只看该作者
我晕了              

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
4 [报告]
发表于 2014-07-30 06:15 |只看该作者
参数包要递归,你的是无穷递归。

这样就可以了:
  1. #include<iostream>

  2. void f() {
  3.     std::cout << std::endl;
  4. }

  5. template <typename T, typename... TN>
  6. void f(T t, TN... args) {
  7.     std::cout << t;
  8.     f(args...);
  9. }

  10. template <typename... ARGS> void g(ARGS...args) {
  11.     f(args...);
  12. }

  13. int main() {
  14.     g(1, "2", 3.0, '4');
  15.     return 0;
  16. }
复制代码

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
5 [报告]
发表于 2014-07-30 06:15 |只看该作者
参数包要递归,你的是无穷递归。

这样就可以了:
  1. #include<iostream>

  2. void f() {
  3.     std::cout << std::endl;
  4. }

  5. template <typename T, typename... TN>
  6. void f(T t, TN... args) {
  7.     std::cout << t;
  8.     f(args...);
  9. }

  10. template <typename... ARGS> void g(ARGS...args) {
  11.     f(args...);
  12. }

  13. int main() {
  14.     g(1, "2", 3.0, '4');
  15.     return 0;
  16. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP