﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Error-随笔分类-gtest</title><link>http://www.cppblog.com/Error/category/20256.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 11 Dec 2012 22:46:11 GMT</lastBuildDate><pubDate>Tue, 11 Dec 2012 22:46:11 GMT</pubDate><ttl>60</ttl><item><title>gtest编译出错： 编译时，error C2977 "std::tuple" too many template arguments问题的解决办法</title><link>http://www.cppblog.com/Error/archive/2012/12/10/196145.html</link><dc:creator>Enic</dc:creator><author>Enic</author><pubDate>Mon, 10 Dec 2012 07:09:00 GMT</pubDate><guid>http://www.cppblog.com/Error/archive/2012/12/10/196145.html</guid><wfw:comment>http://www.cppblog.com/Error/comments/196145.html</wfw:comment><comments>http://www.cppblog.com/Error/archive/2012/12/10/196145.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/Error/comments/commentRss/196145.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/Error/services/trackbacks/196145.html</trackback:ping><description><![CDATA[<div>
<div>1. 编译时，error C2977 "std::tuple" too many template arguments问题的解决办法</div>
<div></div>
<div></div>
<div>网文http://www.cnblogs.com/fresky/articles/2455058.html中的方案如下：</div>
<div></div>
<div>打开 c:\program files (x86)\Microsoft Visual Studio 11.0\VC\include\xstddef，把 _VARIADIC_MAX定义成10。</div>
<div></div>
<div>这个方案一方面需要Administrator，其实是需要System权限才能修改Windows 8中的System文件，另一方面，会对所有的C/C++代码造成影响</div>
<div></div>
<div></div>
<div>其实，更简单的方法是打开&#8220;解决方案资源管理器&#8221;，右键打开项目&#8220;属性&#8221;，在C/C++ --&gt; &#8220;预处理器&#8221;--&gt; &#8220;预处理定义&#8221;中增加以下行即可：</div>
<div></div>
<div></div>
<div>_VARIADIC_MAX=10</div>
<div></div>
<div></div>
<div></div>
<div>坑爹吧？<br /><br />/////////////////////////////////////////////<br />// date: 2012-12-11<br />上面的问题是vc的tr1/tuple引起的，后来高手指点下知道gtest是有一个宏来控制这个东东的，，，<br /><br />//&nbsp;&nbsp; GTEST_HAS_TR1_TUPLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Define it to 1/0 to indicate tr1::tuple<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is/isn't available.<br />//&nbsp;&nbsp; GTEST_HAS_SEH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Define it to 1/0 to indicate whether the<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; compiler supports Microsoft's "Structured<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exception Handling".<br />//&nbsp;&nbsp; GTEST_HAS_STREAM_REDIRECTION<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Define it to 1/0 to indicate whether the<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; platform supports I/O stream redirection using<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dup() and dup2().<br />//&nbsp;&nbsp; GTEST_USE_OWN_TR1_TUPLE&nbsp; - Define it to 1/0 to indicate whether Google<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Test's own tr1 tuple implementation should be<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; used.&nbsp; Unused when the user sets<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GTEST_HAS_TR1_TUPLE to 0.<br /><br /><br /><br />
<div>
<div>// Determines whether Google Test can use tr1/tuple. &nbsp;You can define</div>
<div>// this macro to 0 to prevent Google Test from using tuple (any</div>
<div>// feature depending on tuple with be disabled in this mode).</div>
<div>#ifndef GTEST_HAS_TR1_TUPLE</div>
<div>// The user didn't tell us not to do it, so we assume it's OK.</div>
<div># define GTEST_HAS_TR1_TUPLE 1</div>
<div>#endif &nbsp;// GTEST_HAS_TR1_TUPLE</div>
<div></div>
<div>// Determines whether Google Test's own tr1 tuple implementation</div>
<div>// should be used.</div>
<div>#ifndef GTEST_USE_OWN_TR1_TUPLE</div>
<div>// The user didn't tell us, so we need to figure it out.</div></div></div></div><img src ="http://www.cppblog.com/Error/aggbug/196145.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/Error/" target="_blank">Enic</a> 2012-12-10 15:09 <a href="http://www.cppblog.com/Error/archive/2012/12/10/196145.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>