limit.h文件定义了模板numeric_limits

时间:2013-10-03 17:57:42

标签: c++ linux gcc debian

所以,我试图找到定义了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文件。但他们似乎都没有我正在寻找的模板定义

<{1>}中的

/usr/include/返回以下内容:
    ./c++/4.4/tr1/limits.h
    ./limits.h
    ./linux/limits.h

<{1>}中的

    % 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-fixed/limits.h

那么/usr/lib模板位于何处。我如何找到该文件。

1 个答案:

答案 0 :(得分:2)

如参考页面所示,std::numeric_limits在标题<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