草庐IT

c++ - 如何将 `std::array` 用作 `template<typename> class` 形式的模板参数?

请考虑以下tree类templateclassTuple>classtree{private:Tm_value;Tuplem_children;};templateusingstatic_tree=tree>;定义不明确。std::array不是Tuple的合适模板参数.我假设static_tree的意图清楚了。我们可以做类似的事情templatestructhelper{templateusingtype=std::array;};templateusingstatic_tree=tree::templatetype>;没有helper还有其他选择吗?类(class)?

c++ - Boost 可以用作 C++ 标准库的完全替代品吗?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。假设我有最少的header,例如,,也许还有其他一些东西,是否可以使用Boost作为标准C++库,或者是否缺少很多代码?我假设有一个C标准库,它可能有类似printf的糟糕版本(想想Windows),Boost会在中提供更好的实现吗?(或其他)?

您如何将枪支用作牛仔客户?

我跟随入门说明对于牛仔来说,我已经在港口8080上奔跑和聆听,我得到了HelloErlang!我输入时的回应http://localhost:8080在我的浏览器中。现在,如何使用枪连接到牛仔?我读了枪支文档,它说要添加“枪支为erlang.mk依赖性”。所以我下载了erlang.mk:~/erlang_programs/my_gun$curl-Ohttps://erlang.mk/erlang.mk并遵循erlang.mk用户指南,我创建了一个应用程序:~/erlang_programs/my_gun$gmake-ferlang.mkbootstrap然后,我添加了枪支作为依赖的依赖:PRO

c++ - 为什么我不能将 std::unique_ptr 用作 "template<class> class"参数?

这段代码:#includetemplateclassPtr>classA{Ptrints;};usingB=A;产生以下错误(使用GCC6.3):a.cpp:6:28:error:type/valuemismatchatargument1intemplateparameterlistfor‘templateclassPtr>classA’usingB=A;^a.cpp:6:28:note:expectedatemplateoftype‘templateclassPtr’,got‘templateclassstd::unique_ptr’现在,我可以像这样解决这个问题:templateu

C++ Switch不会使用用作大小写的外部定义变量进行编译

我正在使用MinGWGNU编译器编写C++,当我尝试使用外部定义的整数变量作为switch语句中的case时出现问题。我收到以下编译器错误:“caselabeldoesnotreducetoanintegerconstant”。因为我已经将整数变量定义为extern我相信它应该可以编译,有人知道问题出在哪里吗?下面是一个例子:测试.cpp#include#include"x_def.h"intmain(){std::coutx_def.hexternconstinttest_int;x_def.cppconstinttest_int=0;此代码将在VisualC++2008上正确编译。

只能用作 constexpr 变量的 C++ 类型

我有一个库类型,它只应该用作全局变量并且必须被链接器初始化(即它必须在静态初始化时间之前具有正确的初始值)。我有充分的理由认为,如果我做以下两件事之一,我将得到我需要的东西:让它成为PODtype,将用户提供的成员放在第一位,并相信用户会将正确数量的表达式传递给Typevar={expr,expr};语法。将实现设为私有(private),提供一个constexpr构造函数并依赖于用户将所有实例声明为constexpr。这些都不好,因为它取决于用户不搞砸事情。缺少宏魔法,有没有办法强制一个类型的所有实例都是constexpr? 最佳答案

c++ - 如果将 "+m"用作输出约束,gcc 能否正常工作?

根据gccdocs在扩展汇编器上:只有当操作数的约束[...]允许寄存器时,您才应该使用读写操作数。这似乎非常明确:您不能将+m用于输出。但是,我已经看到它被执行了很多次。事实上,LinusTorvalds是onrecord如说gcc文档是次要的。它们没有更新,它们不正确,它们不反射(reflect)现实,它们无关紧要。对于这样的事情,唯一正确的用法是“+m”如果编译器最终会搞砸我的代码,我不想使用+m。甚至检查输出asm看它是否工作并不意味着明天当我更改一些看似无关的东西时它仍然可以工作。或者当我获得gcc的下一个更新时它仍然可以工作。如果文档是正确的并且我不能依赖它正常工作,我想知

c++ - std::condition_variables 可以用作计数信号量吗?

这是CanC++11condition_variablesbeusedtosynchronizeprocesses?的后续行动.std::condition_variable对象可以用作计数信号量吗?我认为不是因为对象似乎绑定(bind)到std::mutex,这意味着它只能用作二进制信号量。我在网上看过,包括here,here,和here,但找不到将这些对象用作计数信号量的引用或示例。 最佳答案 是的。structcounting_sem{counting_sem(std::ptrdiff_tinit=0):count(init)

c++ - 如何将一个类的嵌套枚举用作另一个类的嵌套枚举?

下面的代码将在enumen=A::en;行给出编译错误,但它描述了我想做的事情(使A的嵌套枚举成为也是B的嵌套枚举)。#includeusingnamespacestd;structA{enuma_en{X=0,Y=1};};structB{enumb_en=A::a_en;//syntaxerror};intmain(){cout所以问题是我如何在C++中做这样的事情? 最佳答案 将枚举放在A和B都可以继承的基类中。 关于c++-如何将一个类的嵌套枚举用作另一个类的嵌套枚举?,我们在S

c++ - 用作模板函数输入的函数的 void 返回值被视为参数

假设你有一些目标类,上面有一些方法:classSubject{public:voidvoidReturn(){std::cout还有一个值类(在概念上类似于Boost.Any):structValue{Value(){}Value(Valueconst&orig){}templateValue(Tconst&val){}};我想使用Subject类中的方法生成一个Value对象:Subjectsubject;Valueintval(subject.intReturn());ValuevoidVal(subject.voidReturn());//compilationerror我在VC