1

所以,我试图找到定义了 numeric_limits 的 limit.h 文件。我似乎找到了 limit.h 的所有不同风格,但没有找到定义的风格,如 http://en.cppreference.com/w/cpp/types/numeric_limits所示

我在 debian 发行版上。

这是我到目前为止所做的。我创建了一个main.cpp只有#include <limits> G++ 详细构建来查找所有包含路径: g++ -v main.cpp -o tryout。现在我看到了,/usr/include 并且usr/lib有一堆 limits.h 文件。但他们似乎都没有我正在寻找的模板定义

in/usr/include/
% find -name limits.h返回以下内容:
./c++/4.4/tr1/limits.h
./limits.h
./linux/limits.h

in/usr/lib
% find -name limits.h返回以下内容:
./perl5/Tk/pTk/compat/limits.h
./gcc/x86_64-linux-gnu/4.3/include-fixed/limits.h
./gcc/x86_64-linux-gnu/4.4/include -固定/limits.h

那么std::numeric_limits模板在哪里。我如何找到那个文件。

4

1 回答 1

2

如参考页所示,std::numeric_limits在 header 中定义<limits>,而不是limits.h. 您可以通过询问预处理器来找到它的位置,例如:

~$ cat test.cc
#include <limits>

~$ g++ -E test.cc -o - | grep limits | grep gcc | tail -1
# 841 "/opt/swt/install/gcc-4.7.2/lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/limits" 3
于 2013-10-03T18:19:16.030 回答