草庐IT

make_obj

全部标签

c++ - 为什么 C++ OBJ 文件很重要?

请注意,我是C++新手。当我编译我的程序时,我注意到为我拥有的每个类都创建了一个.obj。当我查看程序文件中的其他程序时,我意识到这些程序几乎没有任何.obj,所以我想我做错了什么。此外,如果我从发布目录中删除了obj文件并尝试再次运行exe,它仍然可以正常工作,我知道这些文件不会毫无意义,但是...它们有什么用?它应该为每个类文件制作它们吗?-如果不是,我该如何解决?我如何在编译时将它们放在一个目录中,例如一个名为obj的文件夹? 最佳答案 .obj文件(Linux/Unix上的.o文件)是编译好的源文件,每个.cpp确实会有一个

c++ - 为什么 C++ OBJ 文件很重要?

请注意,我是C++新手。当我编译我的程序时,我注意到为我拥有的每个类都创建了一个.obj。当我查看程序文件中的其他程序时,我意识到这些程序几乎没有任何.obj,所以我想我做错了什么。此外,如果我从发布目录中删除了obj文件并尝试再次运行exe,它仍然可以正常工作,我知道这些文件不会毫无意义,但是...它们有什么用?它应该为每个类文件制作它们吗?-如果不是,我该如何解决?我如何在编译时将它们放在一个目录中,例如一个名为obj的文件夹? 最佳答案 .obj文件(Linux/Unix上的.o文件)是编译好的源文件,每个.cpp确实会有一个

c++ - make_shared<>() 中的 WKWYL 优化是否会为某些多线程应用程序引入惩罚?

几天前我碰巧看了StephanT.Lavavej的thisveryinterestingpresentation,其中提到了“WeKnowWhereYouLive”优化(抱歉在问题标题中使用了首字母缩写词,所以警告我否则问题可能已经关闭),以及HerbSutter在机器架构上的thisbeautifulone。简而言之,“WeKnowWhereYouLive”优化在于将引用计数器放置在与make_shared正在创建的对象相同的内存块上,从而导致一个单一的内存分配而不是两个,并使shared_ptr更紧凑。在总结了我从上面两个演示中学到的东西之后,我开始怀疑如果shared_ptr被多

c++ - make_shared<>() 中的 WKWYL 优化是否会为某些多线程应用程序引入惩罚?

几天前我碰巧看了StephanT.Lavavej的thisveryinterestingpresentation,其中提到了“WeKnowWhereYouLive”优化(抱歉在问题标题中使用了首字母缩写词,所以警告我否则问题可能已经关闭),以及HerbSutter在机器架构上的thisbeautifulone。简而言之,“WeKnowWhereYouLive”优化在于将引用计数器放置在与make_shared正在创建的对象相同的内存块上,从而导致一个单一的内存分配而不是两个,并使shared_ptr更紧凑。在总结了我从上面两个演示中学到的东西之后,我开始怀疑如果shared_ptr被多

c++ - make_unique 值是否初始化 char 数组

例如-#includeintmain(){constautobufSize=1024;autobuffer=std::make_unique(bufSize);}这里的缓冲区是否已经填充了'\0'字符,或者我必须手动填充它以避免垃圾值。有什么可能的方法来做到这一点,std::memset(&buffer.get(),0,bufSize)就足够了吗? 最佳答案 如果您不提供构造函数参数,则所有make_*函数都会对类型使用值初始化。由于make_unique的数组形式不带任何参数,它会将元素清零。

c++ - make_unique 值是否初始化 char 数组

例如-#includeintmain(){constautobufSize=1024;autobuffer=std::make_unique(bufSize);}这里的缓冲区是否已经填充了'\0'字符,或者我必须手动填充它以避免垃圾值。有什么可能的方法来做到这一点,std::memset(&buffer.get(),0,bufSize)就足够了吗? 最佳答案 如果您不提供构造函数参数,则所有make_*函数都会对类型使用值初始化。由于make_unique的数组形式不带任何参数,它会将元素清零。

c++ - 带有 enable_if : make default implementation 的部分模板函数特化

使用C++11的enable_if我想为一个函数定义几个专门的实现(例如,基于参数的类型)以及一个默认实现。正确的定义方式是什么?以下示例无法按预期工作,因为调用了“通用”实现,无论T类型如何。#includetemplatevoiddummy(Tt){std::cout::value>::type>voiddummy(Tt){std::cout::value>::type>voiddummy(Tt){std::cout我的最小示例中的一个解决方案是使用明确声明“通用”实现不适用于整数或浮点类型std::enable_if::value&&!std::is_floating_point

c++ - 带有 enable_if : make default implementation 的部分模板函数特化

使用C++11的enable_if我想为一个函数定义几个专门的实现(例如,基于参数的类型)以及一个默认实现。正确的定义方式是什么?以下示例无法按预期工作,因为调用了“通用”实现,无论T类型如何。#includetemplatevoiddummy(Tt){std::cout::value>::type>voiddummy(Tt){std::cout::value>::type>voiddummy(Tt){std::cout我的最小示例中的一个解决方案是使用明确声明“通用”实现不适用于整数或浮点类型std::enable_if::value&&!std::is_floating_point

模型笔记1---3d max 导入obj模型设置

由于今天把obj模型下载下来之后导入unity之后unity报错了,说是法线normals丢失,我新建了材质球直接拖上去贴图也是错乱的,然后上网查了很多资料,好像都不是很靠谱,在综合了多个回答细节之后终于知道咋弄了。1.obj模型是不自带法线的,所以得先将obj模型导入到3dmax里面转化成FBX模型导入3dmax的设置如图,默认设置就可以了,如果你有其他需求,可以看下注释。2.导出FBX的时候选择exportselected,可以选择导出的文件夹位置。直接导出到unity场景的文件下面,这样进入unity会自动加载,不需要再把模型拖进去了。3.导出FBX的时候的文件命名很关键!你的FBX文件

c++ - 使用 std::make_tuple 时如何避免构造函数的未定义执行顺序

如果构造函数的执行顺序很重要,我该如何使用std::make_tuple?比如我猜A类的构造函数和B类的构造函数的执行顺序是未定义的:std::tuplet(std::make_tuple(A(std::cin),B(std::cin)));我在阅读了对该问题的评论后得出了这个结论Translatingastd::tupleintoatemplateparameterpack这就是说这个templatestd::tupleparse(std::istream&stream){returnstd::make_tuple(args(stream)...);}实现具有未定义的构造函数执行顺序