2011-06-02 52 views
2

我刚刚意识到我一直在使用std::vector::data()与std :: string不相似,但一位同事指出它不是标准的。std :: vector :: data()是什么状态?

显然gcc的实现它,但看着它包括的文件,我发现了这个评论:

// _GLIBCXX_RESOLVE_LIB_DEFECTS 
    // DR 464. Suggestion for new member functions in standard containers. 
    // data access 

我的问题是:

  • 是这种方法通过其他编译器广泛实施?
  • 是否包含在C++ 0x中?

(我也想知道什么是DR 464,也_GLIBCXX_RESOLVE_LIB_DEFECTS对于这个问题,但我还不如问那些另一个问题)。

+0

昨天也有人打我,但显然&(vector.front())会给你和调用vector.data()一样的结果,并且是标准的。 – Medo42 2011-06-02 09:27:02

+1

根据我的标准文档副本,在C++ 0x data()==&front()中为非空向量。 – 2011-06-02 09:29:51

回答

4

我不能评论当前的编译器实现,但通过查看C++ 0x标准n3290.pdf它列在23.3.6.4。

相关问题