- 浏览: 691200 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (181)
- Matlab (16)
- Java (26)
- autoHotkey (4)
- openCV (1)
- C++ (50)
- PDF-XChange Viewer (2)
- 学术 (11)
- javascript (4)
- linux (11)
- SWT (9)
- latex (7)
- GAE (2)
- windows (6)
- C# (3)
- PS (20)
- JNI (4)
- latex,批处理 (0)
- 批处理 (4)
- Android (5)
- 矩阵论 (1)
- SVM (1)
- 概率图模型 (0)
- Python (12)
- Eigen (5)
- 编程题 (1)
- MKL (1)
- 神经网络 (9)
- 最优化 (2)
- 摄影 (1)
- PPT (0)
- After Effects (3)
- CUDA (3)
- caffe (0)
- MXNet (2)
- svn (1)
- R (0)
- 虚拟机 (0)
- tensorflow (7)
- theano (1)
- Keras (1)
- vim (1)
- xgboost (1)
- spark (6)
- eclipse (2)
- word2vec (0)
- hadoop (1)
- dmlc (1)
- git (0)
最新评论
-
jeffersonz:
请问大神,这个插件记录下来的脚本为什么不能再Extendscr ...
PhotoShop - 记录PS的所有操作为JavaScript代码 -
cherishLC:
Andy__Zou 写道cherishLC 写道Andy__Z ...
Eigen的编译选项;MKL的使用 -
Andy__Zou:
cherishLC 写道Andy__Zou 写道cherish ...
Eigen的编译选项;MKL的使用 -
cherishLC:
Andy__Zou 写道cherishLC 写道Andy__Z ...
Eigen的编译选项;MKL的使用 -
Andy__Zou:
cherishLC 写道Andy__Zou 写道 您好,您的工 ...
Eigen的编译选项;MKL的使用
1、获取变量名称
采用如下宏定义即可,这个宏定义将表达式x直接转换为对应的字符串:
用法:
2、获取类型名称
采用如下宏定义即可,这个宏定义将表达式x直接转换为对应的字符串:
更多的用法见最后的程序;
先看一下输出:
3、参考的网址
1、http://www.cplusplus.com/reference/typeinfo/type_info/
2、http://bbs.csdn.net/topics/380019977
4、完整的程序:
采用如下宏定义即可,这个宏定义将表达式x直接转换为对应的字符串:
#define varName(x) #x #define printExp(exp) cout<<#exp<<"为:\t\t"<<(exp)<<endl //这样就方便调试了,不用一个个的写变量名称了
用法:
cout<<varName(aInt)<<endl; \\输出为: aInt
2、获取类型名称
采用如下宏定义即可,这个宏定义将表达式x直接转换为对应的字符串:
//可能需要#include <typeinfo> 好像不引用也成 cout<<typeid(int).name()<<endl;
更多的用法见最后的程序;
先看一下输出:
3、参考的网址
1、http://www.cplusplus.com/reference/typeinfo/type_info/
2、http://bbs.csdn.net/topics/380019977
4、完整的程序:
#include <string> #include <iostream> #include <sstream> using namespace std; #define varName(x) #x #define printExp(exp) cout<<#exp<<"为:\t\t"<<(exp)<<endl #define printExpToString(exp) cout<<(string(#exp)+"为:\t\t") <<(exp).toString()<<endl //注意exp加个括号更安全 namespace LC { template<typename T> class Base { public: virtual string toString() { stringstream ss; ss<<typeid(*this).name(); return ss.str(); } Base operator+ (int a){ return *this; } }; template<typename T> class Derived:public Base<T> { public: virtual string toString() { stringstream ss; ss<<typeid(*this).name(); return ss.str(); } }; } typedef LC::Base<double> BaseDouble; typedef LC::Derived<int> DerivedInt; void main() { int aInt=1; printExp(aInt); printExp(typeid(int).name()); printExp(typeid(aInt).name()); cout<<"变量名称为: "<<varName(aInt)<<endl; cout<<endl; BaseDouble base; printExpToString(base); printExpToString(base+5+4); //若宏定义中exp不加括号就无法编译了!!! printExpToString((LC::Base<int>)DerivedInt()); cout<<endl; DerivedInt derived; LC::Base<int>* pBase=&derived; LC::Base<int> baseCast=derived; printExpToString(*pBase); printExpToString(derived); printExpToString(baseCast); printExp(typeid(*pBase)==typeid(derived)); printExp(typeid(baseCast)==typeid(derived)); }
发表评论
-
C++函数中的静态变量
2019-07-19 11:22 816在C++中,可以在成员函数中使用静态变量,从而间接达到在hpp ... -
tensorflow 静态编译笔记 -- linux系统
2018-11-05 14:26 0注: 1、编译tensorflow静态库 很简单,参见: h ... -
gperftools笔记
2018-06-27 14:30 0export LD_LIBRARY_PATH=LD_LIBR ... -
dmlc分布式线性模型编译笔记
2018-06-06 10:37 21711、使用第三方修改后的wormhole工程 原始工程wor ... -
C++中读取控制台输出,并将文件指针FILE*转换为istream
2017-11-27 15:03 1816解决的问题: 1、通过执行系统的bash命令后,获取其输出( ... -
c++中使用boost库在共享内存中存储map
2017-11-09 11:37 5405boost库中的interprocess包可以在共享内存中创建 ... -
近似最近邻算法库FLANN
2017-04-25 18:45 0FLANN库是计算近似最近邻的库, 问题定义如下: 给定距离函 ... -
C++杂记-- 重定向std::cout等
2017-04-18 17:28 19631、屏蔽std::cout 参见:http://stackov ... -
CMake指定目标代码的平台(win32,x64)
2016-06-03 20:54 11716主要参考自:http://blog.c ... -
windows 10下安装GPU版MXNet
2016-06-03 21:28 8587上回说到编译CPU版的MXNet: http://cheris ... -
windows下安装CPU版mxnet
2016-05-23 23:14 17583MXnet (mix net)类似Caffe,Tensorfl ... -
Linux C++编译及 静态/动态 链接库 笔记
2015-12-20 19:49 60521、C++文件的编译 g++参 ... -
Linux (Ubuntu) 下 Eclipse C++ 环境配置
2015-12-08 21:49 19571、安装JDK 参见http://blog.csdn.net/ ... -
Photoshop插件开发-filter
2015-10-11 22:53 3371初学,,感觉PS插件的文档很烂,,教程也很少,,也就这么简单学 ... -
使Visual Assist X支持CUDA的.cu文件的代码提示
2015-07-17 00:05 2301现在安装CUDA很方便了,直接支持Visual Studio。 ... -
CUDA程序block和thread超出硬件允许值时的异常
2015-07-13 11:32 3749调用CUDA的核函数时指定block 和 thread大小,该 ... -
创建及使用DLL
2014-09-29 15:22 1232此篇仅作简要的记录,作为备忘。 更为详细的可以参考:http: ... -
matlab的mexFunction中使用std::cout(部分转载)
2014-09-27 15:37 2161在matlab、C++混合编程的时候,可能会用到之前的代码。代 ... -
Eigen库:那些年我们一起经历的bug
2014-09-24 18:39 18561、使用auto声明新变量 ... -
C++:无虚函数的类作为有虚函数类的父类时产生Expression:_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
2014-09-24 09:48 1994调程序时忘了为啥,写了一小段测试程序,再简单不过,结果跑出了E ...
相关推荐
1. **C++基础知识**:首先,你需要对C++语言有基本的理解,包括变量、函数、控制结构等。Visual C++ 6.0是一个经典的IDE,用于编写和调试C++代码。 2. **Winsock库**:在Windows操作系统中,我们通常使用Winsock库...
根据提供的文件信息,本文将对如何使用C++获取系统中的虚拟串口与实际串口进行详细解析,并基于C++Builder开发环境来进行说明。 ### C++Builder简介 C++Builder是Embarcadero Technologies公司推出的一款集成开发...
声明时要指定变量的名称和类型,例如`int x`表示定义了一个整数类型的变量x。 - 初始化是给变量赋予初值的过程,如`int x = 10`。声明同时初始化是允许的,但如果没有初始值,变量的值将是未定义的,可能会导致不可...
`Course`类用于表示课程信息,包含私有成员变量如课程编号、名称、性质等,并提供了输入和输出的成员函数,方便数据的读写。`input()`函数用于从用户处获取课程信息,而`input_1()`则从文件中读取数据。`display()`...
- **`typeid`运算符**:`typeid`可以用于获取变量或类型的信息。例如,`typeid(x)`返回的是变量`x`的类型信息,而`typeid(T)`返回的是类型`T`的信息。 - **`typeinfo`对象**:`typeinfo`对象通常包含以下成员: - `...
在本文中,我们将深入探讨如何使用Visual C++来获取本地网络信息,包括网络适配器名、网络适配器描述、物理(MAC)地址、IPv4和IPv6地址以及子网掩码。这些信息对于系统管理和网络诊断至关重要。 首先,我们要知道...
确保函数声明符合C调用约定(__cdecl或extern "C"),因为PB不支持C++的名称修饰(name mangling)。 2. **定义函数原型**:在PB中,你需要为DLL中的每个函数创建一个函数原型。这通常在PB的头文件(.h)中完成,...
### C++语言获取本地IP地址方法详解 在计算机网络领域,获取本地IP地址是一项非常基础...通过上述介绍,我们可以了解到使用C++获取本地IP地址的基本原理和技术细节。希望这篇文章能够帮助读者理解和掌握这一关键技能。
`BrowsHistory`类中包含一个`std::vector<BrowsData>`成员变量`m_BrowsHistroy`,用于存储获取到的所有历史记录。 `BrowsHistory`类提供了以下关键功能: 1. **URL过滤**:`urlFiltrateIE`、`urlFiltrateChrome`和...
每个变量都有一个特定的数据类型。 - **常见数据类型**: - `int`: 整数类型,用于存储整数值。 - `float`: 浮点类型,用于存储带小数点的数值。 - `char`: 字符类型,用于存储单个字符。 - `double`: 双精度浮点...
现代C++中的`nameof`运算符是一个非常实用的工具,它允许程序员在运行时或编译期轻松地获取变量、类型、函数、宏和枚举的名称。这个特性虽然不是C++标准库的一部分,但已经成为了许多开源库和项目中的常见实践,特别...
在C++编程语言中,自定义数据类型是一个重要的特性,它允许程序员根据需求创建自己的数据结构,以便更高效地组织和处理数据。本篇内容主要围绕C++中的三种自定义数据类型展开:结构体(Struct)、共用体(Union)和...
- **sizeof**:是一个运算符,用于获取特定类型或变量在内存中所占的字节数。例如,`sizeof(int)`返回`int`类型的大小。 - **注意事项**:`sizeof`是一个静态运算符,其结果在编译阶段就已经确定。避免在`sizeof`...
2. **类和对象**:类是C++中的蓝图,定义了一组数据成员(变量)和成员函数(方法)。对象是类的实例,每个对象都有自己的数据成员副本。通过类和对象,我们可以构建复杂的软件结构。 3. **构造函数与析构函数**:...
C++是一种静态类型的、编译式的、通用的、大小写敏感的、不仅支持过程化编程,也支持面向对象编程的程序设计语言。MFC是微软提供的一套面向对象的类库,它包含了用于构建Windows应用程序所需的各种组件,如窗口、...
总结起来,C++获取进程信息列表和进程所调用的DLL列表涉及的主要知识点包括: 1. Windows API函数的使用,如`EnumProcesses`、`EnumProcessModules`、`GetModuleBaseName`和`GetModuleFileNameEx`。 2. 系统权限的...
- `setInstructorName` 和 `getInstructorName`: 分别用于设置和获取教师名称。 - `displayMessage`: 输出欢迎信息,包括课程名称和教师名称。 ### 测试文件 ```cpp #include using std::cout; using std::endl;...
C++是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程等多种编程范式。C++在许多应用领域中都非常流行,尤其是在系统编程、游戏开发等领域有着广泛的...
在C++编程中,实现本地机子流量统计通常涉及到操作系统底层的网络接口信息获取,这通常通过Windows API中的函数来完成。在这个示例中,主要用到了`GetIfTable`函数来获取网络接口表,以此计算网络流量。以下将详细...
这里,"EasyLogdll"是你的C++动态库的名称,根据实际情况可能需要加上.dll或.so等后缀。 在C++端,你需要实现`processArray`函数,处理输入的二维数组并返回结果到输出数组。注意,C++的二维数组在内存中是一维连续...