草庐IT

c++ - 类型到值元函数可以用作 C++14 中的变量别名吗?

在查看C++14元函数别名提案(TransformationTraitsRedux,v2,N3655)时,我注意到,不仅类型到类型转换(例如add_const),类型到值元函数(例如is_void)也是类型别名。(在N3797中不存在)。使用别名类型来赋值元函数有什么好处吗?我认为,可以在没有这些别名的情况下使用它们,例如存在转换操作时的enable_if_t::value,T>或enable_if_t{}(),T>。(我猜is_void::type::value和is_void::value一样)如果值元函数的类型需要别名,将它们别名为变量模板不是更好吗(我没有C++14编译器,也从

java - IntelliJ IDEA 14 : How to skip tests while deploying project into Tomcat

我有一个SpringMVC项目使用IntelliJIDEA14作为我的IDE(我是IntelliJIDEA的新手;我使用了Eclipse)。我的主要Java代码在文件夹src/main中,单元测试代码在src/test中。在部署项目时,我发现所有的单元测试都被执行了。如何在将项目部署到Tomcat时跳过所有单元测试? 最佳答案 如果你使用Maven,在View>ToolWindows>MavenProjects点击如下所示的按钮(称为SkipTestsMode)。本质上,当您说运行package时,它会将test阶段从生命周期中移除

java - IntelliJ IDEA 14 : How to skip tests while deploying project into Tomcat

我有一个SpringMVC项目使用IntelliJIDEA14作为我的IDE(我是IntelliJIDEA的新手;我使用了Eclipse)。我的主要Java代码在文件夹src/main中,单元测试代码在src/test中。在部署项目时,我发现所有的单元测试都被执行了。如何在将项目部署到Tomcat时跳过所有单元测试? 最佳答案 如果你使用Maven,在View>ToolWindows>MavenProjects点击如下所示的按钮(称为SkipTestsMode)。本质上,当您说运行package时,它会将test阶段从生命周期中移除

c++ - 在C++14模式下用clang for libstdc++编译regex程序报错

我编译了clang3.6.0(trunk219085)和g++4.9.1.为了使用正确的libstdc++(6.0.20),而不是我系统中的那个,我有这些环境变量:set-xLD_LIBRARY_PATH/home/remyabel/gcc-4.9.1/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/usr/local/libset-xPATH~/install/gcc-4.9.1/bin/home/remyabel/llvm/build/Release+Asserts/bin/home/remyabel/llvm/build/Relea

C++:使用 C++14 通用 lambda boost fusion fold

我正在尝试将通用lambda函数传递给boost::fusion::fold函数,以便我可以迭代boost::fusion::vector的所有元素。我的目标是从vector中的每个元素调用一个非常量成员函数。问题在于,即使vector包含非常量值,由通用lambda推导的类型也是一个const引用。这导致我的gcc-4.9.0编译器(使用CygWin)提示我放弃了const限定符。#include#include#include#includeclassSilly{public:Silly(intx):x_(x){}intincrement(inti){returnx_+=i;}pr

c++ - 在 C++14 中使用自动返回 'type' 进行显式模板特化是否有效?

Previousquestion.我重复上一个问题的代码,使这个问题独立。如果使用gcc4.8.3编译下面的代码,则它不会发出任何警告。使用-std=c++1y。但是,如果使用-std=c++0x标志编译,它会发出警告。在上一个问题的上下文中,声明代码不使用gcc4.9.0编译。不幸的是,目前我还没有完全理解auto是如何实现的。因此,如果有人能回答以下问题,我将不胜感激:1).以下代码是否符合C++14标准的有效C++?2).如果是的话,这段代码会被认为是一种好的风格吗?如果不是,为什么不呢?3).为什么下面的代码在使用C++11编译器时(有时)可以编译和工作?或者,为什么它并不总是

C++14 auto lambda 可以接受 Obj<std::tuple<void>>——但模板函数不能?

下面是一个程序,它完全演示了我所看到的问题。首先,我从一个使用其他类型的分组定义的对象开始,我开始使用std::tuple来管理分组。templateclassobject;templateclassobject>{};我打算这些对象能够具有散布在“包”中的类型void。我已经意识到无法“实例化”这种类型的元组(参见Voidtypeinstd::tuple)我想传递这些对象,也许复制/移动它们......它们的数据成员都不是这些类型的元组。事实上,我可以使用上面的空对象定义重现该问题。我可以让它工作,使用类似的东西:templatestructTGrp{};templateclasso

c++ - 如果在 C++14 或更高版本上,不是 const 的成员函数只能是 constexpr

在C++11中,成员函数上的constexpr意味着const。这在C++14中有所改变。我有一些代码有一个成员函数,它应该是constexpr,但不能是const,所以如果用stdc++14或更高版本编译,我希望它是constexpr。一种方法是:classFoo{#if_cplusplus>=201402Lconstexpr#endifintbaz(constBar&bar);};有没有更好的表达方式,最好不用预处理器? 最佳答案 最好的方法是利用功能测试宏,作为SD-6的一部分.constexpr成员函数不是隐式const的更

c++ - 什么 C++14 规则禁止 constexpr 函数对数据成员进行赋值?

我的理解是这段(无意义的)代码不是有效的C++14:classPoint{public:constexprdoublesetX(doublenewX){returnx=newX;}private:doublex;};我正在尝试找出(仍为正式草案的)C++14标准的哪一部分不允许它。7.1.5/2中列出了对constexpr函数的限制。(抱歉格式错乱。我想不出如何击败markdown使其看起来正确。)Thedefinitionofaconstexprfunctionshallsatisfythefollowingconstraints:itshallnotbevirtual(10.3);

c++ - §7.1.6.3/1 (C++14) 不接受下面第二个片段中的构造。为什么是这样?

第一部分:我已经在一些细节上研究opaque-enum-declaration和elaborated-type-specifier几天了,我真的希望有人能确认这一点。GCC和VS2013不编译这段代码(clang编译),我相信clang符合§7.1.6.3/1,因为enumE是一个elaborated-type-specifier这不是声明enumEe=E::b;的唯一组成部分。我的分析正确吗?#includeenumclassE:char{a='a',b};intE;enumEe=E::b;//Doesn'tcompileinGCCandVS2013intmain(){std::co