草庐IT

cpu-type

全部标签

C++ : has_trivial_X type traits

boost库,似乎是即将推出的C++0x标准,定义了各种类型特征模板,以区分具有平凡构造函数、复制构造函数、赋值或析构函数的对象与不具有平凡构造函数的对象。其最重要的用途之一是优化某些类型的算法,例如通过使用memcpy。但是,我不明白所有各种has_trivial_X模板之间真正的实际区别。C++标准只定义了我们在这里关注的两大类类型:POD和非POD。如果一个类型具有已定义的构造函数、复制构造函数、赋值运算符或析构函数,则该类型是非POD。换句话说,任何不是内置类型或内置类型的C结构的东西都不是POD。那么区分has_trivial_assign和has_trivial_const

c++ - 关于简单 CPU 仿真器实现的问题

背景信息:最终,我想编写一个真实机器的模拟器,例如原始的任天堂或Gameboy。然而,我决定我需要从一个非常非常简单的地方开始。我的计算机科学顾问/教授为我提供了一个非常简单的假想处理器的规范,他首先创建了这个处理器来进行仿真。有一个寄存器(累加器)和16个操作码。每条指令由16位组成,其中前4位包含操作码,其余为操作数。指令以二进制格式的字符串形式给出,例如“0101010100001111”。我的问题:在C++中,解析处理指令的最佳方法是什么?请记住我的最终目标。以下是我考虑过的一些要点:我不能只是在阅读指令时处理和执行它们,因为代码是自修改的:一条指令可以更改后面的指令。我能看到

c++ - 从 std::true_type 继承 vs static constexpr const bool 成员

我知道这不是一个非常尖锐的问题。使用一个比另一个有优势(编译时间、依赖性、调试符号大小、可用性、可读性等)吗?templatestructIsSharedPtr:std::false_type{};对比templatestructIsSharedPtr{staticconstexprboolvalue=false;};相关问题...templatestructS;templatestructS{};templatestructS{};对比templatestructS;templatestructS{};templatestructS{}; 最佳答案

c++ - G++ 4.4.7 中的 "names the constructor, not the type"

我有以下简单的C++代码:#includeclassA{public:A(inty):x(y){}A&operator=(constA&rhs);intx;};A::A&A::operator=(constA&rhs){this->x=rhs.x;return*this;}intmain(int,char**){Aa1(5);Aa2(4);printf("a2.x==%d\n",a2.x);a2=a1;printf("a2.x==%d\n",a2.x);return0;}第11行,A的operator=()函数的定义所在,格式不正确......或者,至少,我相信是这样。正如预期的那样,

C++:有意限制 CPU 使用

在我的公司,我们经常测试我们的USB和FireWire设备在CPU压力下的性能。我们运行了一个加载CPU的测试代码,它通常用于非常简单的非正式测试,以查看我们设备的性能会发生什么变化。我查看了它的代码,它是一个简单的循环,它递增一个计数器并根据新值进行计算,并将此结果存储在另一个变量中。运行单个实例将使用1/X的CPU,其中X是核心数。因此,例如,如果我们在一台8核PC上,我们想看看我们的设备如何在50%的CPU使用率下运行,我们可以一次打开四个实例,依此类推...我在想:是什么决定了CPU的使用量?它是否只是在单线程应用程序的单线程上尽可能快地运行所有内容?有没有办法主动限制您的程序

c++ - 前向声明的类型和 "non-class type as already been declared as a class type"

我对以下代码有疑问:templatevoidfoo(structbar&b);structbar{};intmain(){}它在GCC上编译成功,但在MSVC(2008)上编译失败并出现以下错误:C2990:“bar”:已声明为类类型的非类类型是代码错误还是MSVC中的错误?如果我在模板定义之前添加structbar;就可以了。 最佳答案 我们有我们的赢家:https://connect.microsoft.com/VisualStudio/feedback/details/668430/forward-declared-type-

c++ - 错误 C2678 : binary '=' : no operator found which takes a left-hand operand of type 'const Recipe' (or there is no acceptable conversion)

我正在尝试对每个元素中包含一个int和一个字符串的vector进行排序。它是一个称为vector食谱的类类型的vector。出现上述错误,这是我的代码:在我的Recipe.h文件中structRecipe{public:stringget_cname()const{returnchef_name;}private:intrecipe_id;stringchef_name;在我的Menu.cpp文件中voidMenu::show()const{sort(recipes.begin(),recipes.end(),Sort_by_cname());}在我的Menu.h文件中#include

c++ - while 循环是否总是占用全部 CPU 资源?

我需要创建一个服务器端游戏循环,问题是如何限制循环cpu使用。根据我的编程经验,繁忙的循环总是尽可能地占用最大的CPU使用率。但是我正在阅读SDL(SimpleDirectMediaLayer)的代码,它有一个函数SDL_Delay(UINT32ms),它有一个while循环,它是否占用最大cpu使用率,如果不是,为什么?https://github.com/eddieringle/SDL/blob/master/src/timer/unix/SDL_systimer.c#L137-158do{errno=0;#ifHAVE_NANOSLEEPtv.tv_sec=elapsed.tv_

c++ - std::is_convertible 用于 type_info

在C++11中,可以通过usingstd::is_convertible确定类型A的变量是否可以隐式转换为类型B.如果你真的知道类型A和B,这很有效,但我只有type_infos。所以我正在寻找的是这样的功能:boolmyIsConvertible(consttype_info&from,consttype_info&to);是否可以在C++中实现类似的东西?如果是,怎么办? 最佳答案 在可移植的C++中做你想做的事是不可能的。可能如果您将自己限制在给定的平台上,则有可能获得部分答案。例如那些遵守ItaniumABI的平台将实现此功

c++ - CRTP + 特征类 : "no type named..."

我尝试使用模板化类实现CRTP,但在使用以下示例代码时出现错误:#includetemplateclassTraits{public:typedeftypenameT::typetype;//'staticconstunsignedintm_const=T::m_const;staticconstunsignedintn_const=T::n_const;staticconstunsignedintsize_const=T::m_const*T::n_const;};templateclassCrtp{public:typedeftypenameTraits::typecrtp_typ