标准库在<algorithm>头中定义了两个模板函数std::min() 和 std::max()。通常用它可以计算某个值对的最小值和最大值。可惜在 Visual C++ 无法使用它们,因为没有定义这些函数模板。原因是名字min和max与<windows.h>中传统的min/max宏定义有冲突。为了 ...
分类:
其他好文 时间:
2017-01-15 14:44:29
阅读次数:
228
好久没用过C++,本来就不太熟悉,今天突然写到一个类,需要在类中定义一个常量,居然花了很长时间。 刚开始写了static const int num = 100; 这样是不行的,因为常量只能在初始化列表中初始化,如果去掉const的话,又不能有“常量”的效果, 在类外用宏定义看起来不科学,类外con ...
分类:
编程语言 时间:
2017-01-08 17:44:09
阅读次数:
180
Today I typed the following: Why did I put parentheses around std::max? Because windows.h defines (among other things) a max and a min macro. If you i ...
分类:
其他好文 时间:
2016-09-22 10:03:27
阅读次数:
186
一次一次地,乐此不疲的掉入自己挖的坑儿。之前博客《VS2015–win32工程配置的一些想法之算法min/max与windows中的 min/max宏冲突》写了如何处理algorithm中std:min和windows中min的冲突问题,我们用到了预处理器NOMINMAX。标准库在头中定义了两个模板函数std::min() 和 std::max()。
通常用它可以计算某个值对...
1.宏 ①无参宏 #define MAX 99 ②宏预编译的时进行替换 ③纯大写定义宏 ④宏的主要功能是替换 ⑤宏的使用能让程序更加容易修改 2.条件编译 ①作用:按不同的条件,编译不同的代码 ②通常使用条件编译来调试代码. ③条件编译在编译器进行,根据条件不同,编译不同的源代码 ④if是运行期,根
分类:
其他好文 时间:
2016-01-30 13:24:49
阅读次数:
177
今天还是配置一个工程,遇到了这个问题,使用min时提示:输入正确的标识符。看下面的代码:#include
#include
#includeint main()
{
auto it = std::min(1, 2);//错误,应输入标识符
return 0;
}如果把windows的头文件注释掉就不会发生错误。问题的原因...
分类:
编程语言 时间:
2016-01-28 02:09:25
阅读次数:
309
http://www.cnblogs.com/cvbnm/articles/1947743.html多年以前,Microsoft 幹了一件比 #define N 3 還要蠢的蠢事,那就是在 放入了 min/max 這兩個宏命令(macros)。 #define max(a,b) (((a) > (....
分类:
编程语言 时间:
2015-10-18 16:52:47
阅读次数:
183
#include<stdio.h>#defineMAX(X,Y)((X)>(Y)?(X):(Y))intmax(intx,inty){ returnx>y?x:y;}intmain(){ inta=10; intb=20;intret1=MAX(a++,b++);//宏会直接把定义的替换过来//((a++)>(b++)?(a++):(b++))会进行一系列的运算。此刻算完后a=11.b=22,ret=21intret2=max..
分类:
其他好文 时间:
2015-10-15 16:38:10
阅读次数:
109
今天在编译PDF时发现使用了一下STL中的z数值极限竟然编译不过, return GetRangeConstraint(value <= std::numeric_limits::max(), true); 出现如下错误: warning C4003: “max”宏的实参不足 error C...
分类:
其他好文 时间:
2015-04-16 00:59:29
阅读次数:
155
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5162发现自己写的max宏有点问题改成这样:#define max(a,b) ((a>b)?(a):(b)),后面的返回值也要一个括号#include #include #include #include...
分类:
其他好文 时间:
2015-01-25 16:34:47
阅读次数:
103