首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VC++ 2010中使用C++技术报告1 (TR1)

在VC++ 2010中使用C++技术报告1 (TR1)
EN

Stack Overflow用户
提问于 2010-09-10 03:19:18
回答 3查看 3.6K关注 0票数 4

如何在visual C++ 2010中使用c++ TR1库?

EN

回答 3

Stack Overflow用户

发布于 2010-09-10 03:23:34

VS2010提供了一些内置的C++0x特性。TR1的某些功能(如数学函数)不包括在TR1的可视化C++实现中。

boost has an implementation of TR1,你可以通过downloading boost获取。

要从VS2010禁用C++0x/tr1头并使用boost实现,请在VS2010项目的项目设置中定义_HAS_CPP0X=0

票数 5
EN

Stack Overflow用户

发布于 2010-09-10 03:55:16

如果您想使用与VS10一起打包的TR1实现,只需简单地#包含所需的头文件,然后就可以开始运行了。并不是所有的TR1都包含在TR1的VS10实现中。您可以找到工厂提供的实现here中包含TR1的哪些部分(以及C++0x作为一个整体)的列表,下面是一个简单的示例,说明如何在VS10中使用取自MSDN sample page的正则表达式

代码语言:javascript
复制
// std_tr1__regex__regex_search.cpp 
// compile with: /EHsc 
#include <regex> 
#include <iostream> 

int main() 
    { 
    const char *first = "abcd"; 
    const char *last = first + strlen(first); 
    std::cmatch mr; 
    std::regex rx("abc"); 
    std::regex_constants::match_flag_type fl = 
        std::regex_constants::match_default; 

    std::cout << "search(f, f+1, \"abc\") == " << std::boolalpha 
        << regex_search(first, first + 1, rx, fl) << std::endl; 

    std::cout << "search(f, l, \"abc\") == " << std::boolalpha 
        << regex_search(first, last, mr, rx) << std::endl; 
    std::cout << "  matched: \"" << mr.str() << "\"" << std::endl; 

    std::cout << "search(\"a\", \"abc\") == " << std::boolalpha 
        << regex_search("a", rx) << std::endl; 

    std::cout << "search(\"xabcd\", \"abc\") == " << std::boolalpha 
        << regex_search("xabcd", mr, rx) << std::endl; 
    std::cout << "  matched: \"" << mr.str() << "\"" << std::endl; 

    std::cout << "search(string, \"abc\") == " << std::boolalpha 
        << regex_search(std::string("a"), rx) << std::endl; 

    std::string str("abcabc"); 
    std::match_results<std::string::const_iterator> mr2; 
    std::cout << "search(string, \"abc\") == " << std::boolalpha 
        << regex_search(str, mr2, rx) << std::endl; 
    std::cout << "  matched: \"" << mr2.str() << "\"" << std::endl; 

    return (0); 
    } 
票数 4
EN

Stack Overflow用户

发布于 2010-09-10 03:28:12

与GCC不同的是,VC2010中的TR1头并不隔离在TR1/目录中。我知道这不是因为使用VC,而是因为有人告诉我,GCC的实现在这种方式下是不寻常的。

N1836 1.3/4:

建议使用默认情况下未定义的宏来保护标准标头中的其他声明,或者将所有扩展标头(包括新标头和具有非标准声明的标准标头的并行版本)放在不属于默认搜索路径的单独目录中。

因此,您可能还需要添加一个#define。不幸的是,他们没有对此进行标准化!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3679824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档