草庐IT

intel-syntax

全部标签

c++ - 为什么 GCC 为 0.0/0.0 产生 -nan 和 clang 和 intel 产生 +nan?

当我调试代码时,我发现GCC和Clang都为0.0/0.0产生nan,这是我所期望的,但GCC产生的nan将符号位设置为1,而Clang将其设置为0(如果我没记错的话,与ICC一致)。现在显然这两种形式都是允许的,但我一直想知道为什么0.0/0.0会使GCC输出“否定”结果(打印它会给出-nan),并且-(0.0/0.0)给出“肯定”结果?更令人困惑的是,-0.0/0.0又是“负数”了。这是一个不断折叠的怪癖吗?编辑实际上,正是不断的折叠使它成为一个积极的nan。如果我在运行时强制计算,我会在GCC和Clang上得到负nanvolatilefloatzero=0.0;std::cout

C++ 疯狂 typedef : what is the point of allowing this syntax by the Standard?

老熟人:typedefintcute_int;//cute:commonandfamiliarsyntax.这个语法很完美。没问题。现在,当我们可以像上面那样编写typedef时,那么允许这种语法的意义何在:inttypedefcrazy_int;//crazy:uncommonandunfamiliarsyntax.只是为了迷惑程序员?这种语法是否在任何地方都需要(实际上我们已经使用了前一种)?从编译器的角度你怎么看?他们觉得它可爱还是疯狂?还是对编译器根本不重要?顺便说一句,这段代码来自这里:Useoftypenamekeywordwithtypedefandnew如果您想知道这是

C++ 疯狂 typedef : what is the point of allowing this syntax by the Standard?

老熟人:typedefintcute_int;//cute:commonandfamiliarsyntax.这个语法很完美。没问题。现在,当我们可以像上面那样编写typedef时,那么允许这种语法的意义何在:inttypedefcrazy_int;//crazy:uncommonandunfamiliarsyntax.只是为了迷惑程序员?这种语法是否在任何地方都需要(实际上我们已经使用了前一种)?从编译器的角度你怎么看?他们觉得它可爱还是疯狂?还是对编译器根本不重要?顺便说一句,这段代码来自这里:Useoftypenamekeywordwithtypedefandnew如果您想知道这是

c++ - 编译器优化 : g++ slower than intel

我最近购买了一台双启动计算机,可以用C++编写代码。在Windows上,我在linux上使用英特尔C++编译器和g++。我的程序主要由计算组成(具有数值积分的定点迭代算法等)。我以为我可以在我的linux上获得接近windows的性能,但到目前为止我还没有:对于完全相同的代码,使用g++编译的程序比使用intel编译器的程序慢大约2倍。从我读到的内容来看,icc可以更快,甚至可能提高20-30%,但我没有读到任何关于它快两倍的内容(总的来说,我实际上读到两者应该是等效的)。起初我使用的标志大致等效:icl/openmp/I"C:\boost_1_61_0"/fastprogram.cp

c++ - 编译器优化 : g++ slower than intel

我最近购买了一台双启动计算机,可以用C++编写代码。在Windows上,我在linux上使用英特尔C++编译器和g++。我的程序主要由计算组成(具有数值积分的定点迭代算法等)。我以为我可以在我的linux上获得接近windows的性能,但到目前为止我还没有:对于完全相同的代码,使用g++编译的程序比使用intel编译器的程序慢大约2倍。从我读到的内容来看,icc可以更快,甚至可能提高20-30%,但我没有读到任何关于它快两倍的内容(总的来说,我实际上读到两者应该是等效的)。起初我使用的标志大致等效:icl/openmp/I"C:\boost_1_61_0"/fastprogram.cp

c++ - Visual Studio 2015 “non-standard syntax; use ' &' to create a pointer to member”

我正在学习C++并尝试制作一个小游戏井字游戏。但我不断得到C3867,非标准语法;使用'&'创建一个要记住的指针。这是我的井字游戏.h:#pragmaonce#includeusingnamespacestd;classTicTacToe{public:TicTacToe();stringgetName1();stringgetName2();voidprintBoard();voidclearBoard();voidsetName1(stringplayer1Name);voidsetName2(stringplayer2Name);voidsetSign1(stringplayer

c++ - Visual Studio 2015 “non-standard syntax; use ' &' to create a pointer to member”

我正在学习C++并尝试制作一个小游戏井字游戏。但我不断得到C3867,非标准语法;使用'&'创建一个要记住的指针。这是我的井字游戏.h:#pragmaonce#includeusingnamespacestd;classTicTacToe{public:TicTacToe();stringgetName1();stringgetName2();voidprintBoard();voidclearBoard();voidsetName1(stringplayer1Name);voidsetName2(stringplayer2Name);voidsetSign1(stringplayer

c++ - 错误 C2061 : syntax error : identifier

这个问题不太可能帮助任何future的访客;它仅与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visitthehelpcenter.关闭9年前。这是我的C++代码//XuatChuoiBTHang.h#pragmaonce#include"BieuThuc.h"#include"BieuThucHang.h"classXuatChuoiBTHang{public:virtualstringxuatChuoi(BieuThucHang*btHang)=0;};//BieuThucHang.h#pragmao

c++ - 错误 C2061 : syntax error : identifier

这个问题不太可能帮助任何future的访客;它仅与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visitthehelpcenter.关闭9年前。这是我的C++代码//XuatChuoiBTHang.h#pragmaonce#include"BieuThuc.h"#include"BieuThucHang.h"classXuatChuoiBTHang{public:virtualstringxuatChuoi(BieuThucHang*btHang)=0;};//BieuThucHang.h#pragmao

c++ - 我可以在现代 Intel Core CPU 上测量分支预测失败吗?

Thisquestion它的答案最近被标记为史诗般的答案,这让我想知道;我可以根据CPU分支预测失败来衡量Windows中正在运行的应用程序的性能吗?我知道存在一些静态分析工具,它们可能有助于优化代码以在分支预测情况下获得良好的性能,并且手动技术可以通过简单地进行更改和重新测试来提供帮助,但我正在寻找一些可以在Windows应用程序运行时报告一段时间内分支预测失败的总数,我希望VisualC++的一些Profiler工具可以帮助我。就这个问题而言,所讨论的应用程序要么是使用原生编译器(例如Windows的VisualC++)构建的,要么是使用其他一些原生编译器(例如GCC、FreePa