07 2022 档案

摘要:使用MSVC编译器无法运行,切换成mingw就可以了 阅读全文
posted @ 2022-07-26 19:12 heisse 阅读(182) 评论(0) 推荐(0)
摘要:我认为,属于移动构造的有 struct test{ int a = 0; } int main(){ test a{}; test a; return 0; }Test t1(111); Test t2 = std::move(t1); Test t3 = Test(t2); // 显式调用拷贝构造 阅读全文
posted @ 2022-07-25 19:30 heisse 阅读(109) 评论(0) 推荐(0)
摘要:vector的begin指向第一个,end指向最后元素的后一位。 迭代器是一个浅拷贝,如果vector变动地址或者析构了,会失效 阅读全文
posted @ 2022-07-25 16:40 heisse 阅读(65) 评论(0) 推荐(0)
摘要:不能使用直接初始化,比如struct a()这样,会无法匹配上构造函数,可以使用{ }进行初始化 struct的默认构造函数只有在两种情况下会被调用 默认初始化:在不使用初始化器构造变量时执行的初始化。 值初始化:在以空初始化器构造对象时进行的初始化 vector v1; vector v2{}; 阅读全文
posted @ 2022-07-25 11:11 heisse 阅读(2775) 评论(0) 推荐(0)
摘要:1. 指针是没有类型的,它只是方便解引用 int a[]={1,2,3,4}; int* p =a; p = p+1; printf("%d\n",*p);//2 这段代码吧a换为char也能运行,p=p+1是因为获得了int类型,所以知道了下一个地址再4个字节之后 2. 关于一段代码 #inclu 阅读全文
posted @ 2022-07-24 19:27 heisse 阅读(47) 评论(0) 推荐(0)
摘要:int* const p p是一个int指针,然后p被修饰,指针被修饰意味着p保存的内存地址无法被修改,说明p无法再指向其它地址。 const int* p p是一个int指针,const修饰的是*p,就是说p所指向的值无法改变,p本身可以指向其它地址。 const int* const p == 阅读全文
posted @ 2022-07-24 19:09 heisse 阅读(190) 评论(0) 推荐(0)
摘要:首先进一步理解引用: int &a=b 相当于 int *const a=b。即引用是一个指针常量(又称常指针,即一个常量,其类型是指针)。每当编译器遇到引用变量a,就会自动执行 * 操作。而常引用:const int &a=b就相当于 const int * const a=b。不仅仅是a这个地址 阅读全文
posted @ 2022-07-24 19:02 heisse 阅读(127) 评论(0) 推荐(0)
摘要:我仔细检查了,没有第二个camera,但是我的waterplane就是无法显示。 解决方法: 原来是脚本中的waterplane在脚本中初始化的y轴上被放低了,所以在运行 时看不到,修改代码即可 阅读全文
posted @ 2022-07-19 11:11 heisse 阅读(822) 评论(0) 推荐(0)
摘要:const和constexpr是c++11之后区分开的,之前只有const ,它包含两个含义:只读,常量。这两个概念的含义既有重叠的部分但是 区别更大。 c++11后const只包含 只读的意思,constexpr包含常量的意思,constexpr修饰的变量和函数会在编译期间完成,而const修饰的 阅读全文
posted @ 2022-07-19 09:32 heisse 阅读(205) 评论(0) 推荐(0)
摘要:aux_source_directory只能检测目录下的.cpp文件,不能检测到头文件,.h文件需要在头文件中添加。所以需要在.cpp里面实现一些函数,.h可以实现一些类,然后在调用的时候函数声明一下,类使用::来调用。如果真的需要在子目录中检测到.h文件,使用 FILE(GLOB_RECURSE 阅读全文
posted @ 2022-07-17 11:33 heisse 阅读(3619) 评论(0) 推荐(0)
摘要:推荐是都用struct,struct是特殊的class,class的优势也只是内部变量和函数默认private而已。 阅读全文
posted @ 2022-07-17 10:33 heisse 阅读(73) 评论(0) 推荐(0)
摘要:a / b =a >> log2(b) 阅读全文
posted @ 2022-07-17 10:31 heisse 阅读(139) 评论(0) 推荐(0)
摘要:cmakelist 的生成器表达式里的宏的命名必须首字母大写,否则在编译阶段就过不去,会报奇怪的错误 比如: target_compile_definitions(tbb1 PUBLIC $<$<CXX_COMPILER_ID:GNU,Clang>:My_name="open source"> $< 阅读全文
posted @ 2022-07-16 22:51 heisse 阅读(78) 评论(0) 推荐(0)
摘要:直接下载onetbb的发行版本2021.5.0-win就可以了,里面的api接口名称还没有变,可能是还没来的及改吧。 然后按照之前我的博客进行设置就可以了。 阅读全文
posted @ 2022-07-16 20:12 heisse 阅读(689) 评论(0) 推荐(0)
摘要:这是因为程序在动态链接环节找不到.dll文件而报错,需要在RUN/DEBUG上面的Environment variables里面填写包含.dll的ia32/vc14路径 PATH=路径 阅读全文
posted @ 2022-07-16 18:39 heisse 阅读(882) 评论(0) 推荐(0)
摘要:出现这个错误cmake无法正常工作,原因是因为你在其它地方编译过了,所以在文件夹中删除cmake-build-debug重新编译一下就可以了 阅读全文
posted @ 2022-07-16 17:20 heisse 阅读(646) 评论(0) 推荐(0)
摘要:这个tbb-win只能使用MSVC编译器来编译. 那么首先安装一个microsoft visual studio 2017c++桌面应用,然后再clion的toolchains里面创建一个visual studio,会自动检测。 然后再cmake里面的CMAKE OPTION里面填写-DTBB_DI 阅读全文
posted @ 2022-07-15 15:07 heisse 阅读(391) 评论(0) 推荐(0)
摘要:首先需要在clion的setting里面的CMAKE里面的CMAKE option 里面填上-DCMAKE_CUDA_COMPILER:PATH=F:\cuda\cuda_development\bin\nvcc.exe这一步是让CMAKE找到CUDA的编译器从而可以编译GPU代码。 然后需要下载一 阅读全文
posted @ 2022-07-14 22:48 heisse 阅读(1624) 评论(0) 推荐(0)