自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 为什么要用std::function

std::function

2022-10-28 22:04:11 660 3

原创 顶层const和底层const

顶层const和底层const

2022-04-19 15:15:28 2381 2

原创 【lua】在lua中模拟二维数组中遇到的问题

我们知道lua中没有数组的概念,全都是table,table里面套table,来实现二维数组。 最近就遇到一个问题:local list ={}list[1][2] = 3list[1][3] = 4list[5][6] = 2list[5][7] = 8list[5][9] = 9list[6][4] = 3list[9][5] = 3function hasvalue(p1,p2) if list[p1][p2] ~= nil th...

2021-09-16 14:15:32 345

原创 【perl&python】 ftp处理

最近要从ftp上下载日志并解压。一开始是用的perl的Net::FTP 模块。一开始的需求都可以满足,但是之后有一个需求就是把ftp上的某一天的某一类日志全下下来。这些同名的日志分部在许多不同的文件夹下。也就是需要遍历ftp目录,查了官网好像也没有这个功能。有一个方法倒是可以,可是这么做效率很差。后来就专攻到python,它的ftplib库中就有可以获得ftp当前目录中LIST的方法,ftp.dir 能够获取ftp当前目录下的LIST。他返回一个列表,之后判断单元数据文件属性是否开头为“d”,.

2021-06-23 21:04:41 116

翻译 【机翻】在专门化之前使用模板?

原贴地址我发现,如果您使用包装模板,您可以在模板首次使用后对其进行专门化。简单的例子#include <iostream>template<typename T>const char* templateImpl();template<typename T>const char* templateGetter() { return templateImpl<T>(); }struct S{};int main(){ std::.

2021-06-16 10:22:13 79

原创 MSVC 宏

https://github.com/MicrosoftDocs/cpp-docs/blob/master/docs/preprocessor/preprocessor-experimental-overview.md

2021-06-11 16:41:03 437

原创 MVSC 的 /P 选项

在编译中加入/P 选项,就可以生成名为.i的临时文件,里面是预编译结束后的样子。但是这个时候注意,编译器会报,Severity Code Description Project File Line Suppression StateError LNK1104 cannot open file 'Debug\example.x.obj' wiseenum E:\code\wiseenum\wiseenum\LINK 1 ...

2021-06-08 17:31:33 193

原创 polymorphic lambda

之前就有想过一个问题,咦?lambda 不能是模板嘛?为此还搜了一下,确实没有找到准确的结果polymorphic lambda

2021-06-07 11:40:31 102

原创 plywood的functor类

template <typename Return, typename... Args>struct Functor<Return(Args...)> {private: struct BaseWrapper { Return (*call)(BaseWrapper* wrapper, Args... args) = nullptr; }; template <typename Invocable> struct Wr...

2020-11-25 21:26:57 116

转载 perl一次性替换多个串字符串

最近策划非要搞一堆一样的脚本,然后其中的一些效果ID需要替换成别新的,这样的ID总共有50多个,替换软件的话只能一个一个搞,还担心中间搞错了,比如,复制粘贴过程中,只复制了原ID,新的ID没有换,那就把原ID替换成了上一个要替换的新ID.于是网上搜搜看一次性替换多个字符串的方法,这个方法如下:#!/usr/bin/perluse strict;use warnings;my %replace = ( quick => "slow", lazy =&gt..

2020-09-12 21:54:43 1490

原创 std::enable_if 学习

std::enable_if这个东西标准文档里写的很清楚,看代码也能看明白,但是,在标准文档里面的注释,属实把我整蒙了。注解常见错误是声明二个函数模板,而它们仅于其默认模板实参相异。这是无效的,因为这些函数声明被当做同一函数模板的再声明(默认模板实参不为函数模板等价所考虑)。可能翻译的不太好,我又查了英文版同样的内容NotesA common mistake is to declare two function templates that differ only ...

2020-08-11 21:18:10 527 1

原创 visual studio 2012 中没实现的C++11标准

visual studio 2012不支持 parameter pack功能

2020-07-16 09:43:56 307

原创 C++中的值与引用

值与引用,准确的说是C++11后的值与引用。因为这时候才明确的出现了右值引用,然后能讨论的东西就出来了,那就是 左值、右值当然还有对应的左值引用和右值引用。我第一次接触右值引用的时候是在看SFINAE相关方面的内容时,当我第一次看到了 auto&& 这种写法,一脸蒙蔽,这是啥啊?好在有标准文档的帮助,让我了解到了右值引用,但随之而来的,移动语义和完美转发等术语真的让我头大。可不懂就得学啊,经过一段时间的摸索,终于对这些概念有了较清楚的认识了。左值右值,..

2020-07-14 10:40:46 311

原创     decltype与declval

最近尝试学习decltype和declval,记录一下学习内容1.decltype是C++11出现的新关键字,在vc中打出来有着高贵的亮蓝色,是用来形容decltype(表达式)中,表达式的类型的。简单的int a = 10;decltype(a) b;此时b被声明为与a同样的类型,也就是int。2.declval并不是关键字,只是标准库中的一员,实际上用的时候要用std::declval来使用。而且经常和decltype一起使用来解决decltype的不足,在c++标准文...

2020-07-01 20:06:29 591

原创 linux线程内存开销

1.首先是线程自己栈,程序没设置过,就是默认的,ulimit -s 中的值,现在一般都是10240(单位KB)。2.跟版本有关,是否有 glibc 的 malloc per thread arenas 特性,有了这个特性,设置不好,一个新线程要增加至少64MB的内存,  这个主要是用来解决,线程申请堆内存时,互相竞争的问题。每个线程优先在这个空间内申请堆空间如何判断线程是否采用了 pe...

2018-12-10 17:21:07 3506

转载 会被自动inline的条件

想用GDB去断一个类里的函数,发现不行,被编译器自动转成了inline了,查了一些资料得知了会被自动变成inline函数的条件有可能会被inline的情况 在函数定义的时候,加上inline关键字 函数较短,没有循环或递归,用-O2或-O3编译 类成员函数,在类定义的时候,直接写了函数体,而且函数体较短 肯定不会被inline的情况(只要满足任一条件,不管上足上面多少个条件...

2018-09-26 15:48:40 768

原创 冒泡排序和交换排序的区别

今天体会到冒泡和交换排序算法的区别,之前以为复杂度都是一样的,没有什么区别。可是最近项目中一处单索引排序的地方要改成双索引排序,结果原来用的交换排序,就出了问题,排序变成了不稳定的了。

2017-07-10 19:08:15 2921

原创 snprintf与_snprintf的区别

常见snprintf与_snprintf的区别是_snprintf不会末尾置0就不说了,能搜到很多相关的内容。    先从遇到的问题说起:            我们的服务器是跨平台的,有个宏 tsnprintf ,在linux定义成了snprintf,在window下就是_snprintf。           有一个需求是拼字符串,像是 ”小王,小李,小张“,名字用中拼上个逗号。

2016-07-04 14:22:43 5934 2

原创 socket的一个问题

最近遇到一个奇怪的问题,服务器组中一台做server的服务器,与另一台做client的服务器,之间连接断开了,是由重连机制的,但是server并不释放原来与cline的之间的连接,从日志看仍然不断的往这台client上发包,就算是重启过client,仍然无效,原来的连接还在,新启的client仍然连不上。这就必须重启了server。当时这台server受到了网络攻击,不知道是否有关系,还得继续查一

2016-04-07 11:03:09 298

原创 关于lua除法的问题

lua版本5.0     数字都是浮点型,除法出来的数也是浮点型,但是今天碰到一个问题,1603272359/100,直接算出来的是16032724!!!!,很是不解,前面的数字是个时间格式,我要去小时,导致23h变成24h,莫名的bug。只能认为数太大了,除法有问题,解决方法就是先摸除一下,取2359再做除法。

2016-03-10 11:07:44 3785

原创 win7的64位系统上使用32位ODBC源

工作机升级到win7,64位系统了,但是原来服务器用的32位odbc,按照老方法操作的话,在控制面板中点开的ODBC数据源不会显示出MySQL,虽然按了64位mysql的odbc能进行设置了,但是启动服务器会报“在制定的DSN中,驱动程序和应用程序之间的体系结构不匹配”这样的问题。后来找到了解决办法,不用控制面板哪里点开ODBC数据源,在window/system32中会有一个ODBCAD32

2015-07-29 11:26:32 12376

原创 socket非阻塞的connect

这个问题以前没注意过,都是先connect后再设置成非阻塞的。但是最近碰到一个问题,需要连多个server,如果有一个server关机了,这时候connect就会非常慢,影响整个程序。查了一下,原来connect的时候就可以设置成非阻塞的。步骤貌似也很简单,我的理解就是先设置非阻塞然后调用connect,这时候connect是立即返回的,接下来就需要调用select来查看是否连上了,比较方便的

2015-04-02 17:48:31 527

转载 DiskId32新版

原来写过提取硬盘物理序列号的帖子,也给过下载资源,后来就扔那不管了。最近看看发现有人反馈win7用不了,我又自己翻了翻,发现13年的时候又有更新了。网址是https://www.winsim.com/diskid32/diskid32.html用法、源文件都有,要是打不开的话,我上传了diskid32.cpp的新版,压缩包里还有一个可用的exe。自己win7 64位

2015-03-09 19:03:57 1583

原创 用perl收SSL下的POP3邮件

公司什么玩意都愿意加SSL,真是遭不住啊。有一些服务器监控信息是用定时邮件来做的,于是就要定时查看邮件,后来就想做个自动分析的工具,就要用perl来收邮件,一开始用的Net::SMTP::SSL,总会生成一些临时文件,后来换成Mail::POP3Client好用多啦。

2015-03-09 15:14:43 620 2

原创 对象函数指针

class A{bool result(int);//一个函数}1:对象的函数指针是bool (A::*func)(int)2.对象的函数地址是&A::result3.使用一个对象函数指针所指函数是(this->*func)

2011-09-14 21:26:26 321

原创 读硬件物理序列号diskid32.h

最近需要做个加密的东西,需要读取硬件物理地址,我和很多人一样,也找的diskid32.h(但是我一般找到的都是diskid32.cpp,没见过.h的),他用了各种方法给提出来了。第一次用,没注意到还有版本,结果用差了,vista、win7有的提不出来。给大家分享下我的痛苦吧。

2011-09-03 21:03:46 2271 3

原创 throw也是一种return啊

在项目中无意中写了个函数没有返回值,结果vc只报了warning C4715,不是所有的控件路径都返回值。这很奇怪,最后查清是在函数中有try/catch块中有throw所以才报这个为warning的。

2011-06-14 00:05:00 702

原创 函数对象的使用

    最近在学Lua,使用C API效果不错,可是读表的方式太过繁琐了,弄了好久都没弄清楚,目前看来,类似于树的广度搜索。    从Lua中读出数据也很麻烦,什么tonumber啦, tostring啦。我的目标是希望从Lua中读出顶点数据,所以采用的是float类型。开始写好的是float getfieldf(lua_State *L, int i){    float

2010-05-14 23:02:00 398

原创 Directx启用深度缓冲区

  正确的使用深度缓冲区有3个步骤:  1:  D3DPRESENT_PARAMETERS 中的EnableAutoDepthStencil属性要设置成TRUE;      2:  m_pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE ); 开启深度测试  3:  Clear的时候清除ZBUFFER 忘了设置第一个步骤,结果渲染出现

2010-04-26 09:36:00 788

diskid32.cpp 2013更新

diskid32.cpp 2013有一次更新,我看很多人都说win7不好用,附件的exe是编译好的,我自己的win7 64为看了一下,是可以的

2015-03-09

提取硬盘物理序列号

用来提取硬盘物理序列号的,兼容vista、win7系统

2012-10-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除