草庐IT

non-void

全部标签

c++ - 使用模板 "f(int[4][4])"时没有 "void f(int x[M][N])"的匹配函数?

#includetemplatevoidprint1(intsrc[M][N]){}voidprint2(intsrc[4][4]){}intmain(){intsrc[][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16},};print1(src);//giveserror//error:nomatchingfunctionforcallto'print1(int[4][4])'print2(src);//works!}在上面的代码中,print2()按预期工作,但是print1()给我错误error:nomatchingfunct

c++ - 对 void 及其含义的困惑。

我是编程的新手,对void的作用感到困惑,我知道当你把void放在函数前面时,它意味着“它什么都不返回”但是如果函数什么都不返回那么写的重点是什么功能??无论如何,我在作业中遇到了这个问题,我正在尝试回答它,但需要一些关于一般概念的帮助。任何帮助都会很棒,请尽量避免使用技术术语,我是这里的新手。这个函数完成了什么?voidadd2numbers(doublea,doubleb){doublesum;sum=a+b;} 最佳答案 voidReturnsNothing(){cout如您所见,此函数不返回任何内容,但这并不意味着该函数不执

c++ - 错误 : Variable length array of Non-POD element type 'string'

在开始之前,我必须首先声明,我已经研究过针对此错误的可能解决方案。不幸的是,它们都与不使用数组有关,这是我项目的要求。另外,我目前正在学习CS入门类(class),所以我的经验几乎没有。数组的用途是从文件中收集名称。因此,为了初始化数组,我计算了名称的数量并将其用作大小。问题是标题中所述的错误,但我仍然使用一维数组时看不到解决方法。主要.cpp#include#include#include#include#include#include"HomeworkGradeAnalysis.h"usingnamespacestd;intmain(){ifstreaminfile;ofstrea

c++ - 关于返回 void 的文体问题

考虑以下人为的示例:voidHandleThat(){...}voidHandleThis(){if(That)returnHandleThat();...}这段代码工作得很好,我相当确定它是规范有效的,但我(也许是我自己)认为这种不寻常的风格,因为调用似乎返回了函数的结果,尽管事实上两者函数的原型(prototype)是无效的。通常,我希望看到:if(That){HandleThat();return;}我觉得,这对正在发生的事情没有任何歧义。SO社区,我能否就returning-void编码风格是否令人困惑或有问题征求意见?它有成语的感觉;我应该使用它还是避免使用它?通常我会力求清

【ARMv8M Cortex-M33 系列 1.1 -- SAU Non-secure Callable(NSC) 介绍 】

请阅读【嵌入式开发学习必备专栏之Cortex-M33专栏】文章目录SAUNSC介绍安全状态(Securestate)非安全状态(Non-securestate)非安全可调用(Non-secureCallable,NSC)区域NSC介绍配置NSCSAUNSC介绍ARMv8-M架构引入了TrustZone技术,它提供了一种机制来实现在单个处理器内部的安全隔离。这项技术定义了两种状态:安全状态(Securestate)和非安全状态(Non-securestate)。在此架构下,可以同时运行安全和非安全代码,并且通过硬件保护确保两者之间的隔离。为了允许非安全代码安全地调用安全函数而不会破坏系统的安全性

c++ - 一元负重载 : member or non-member?

假定前缀一元运算符可以“由不带参数的非静态成员函数或带一个参数的非成员函数实现”(§13.5.1[over.unary]/1),除了适用于任何成员/非成员函数选择的通常封装/代码重用设计原理之外,还有什么区别吗?对于二元运算符,there'sasemanticdifference因为非成员允许对其左侧操作数进行隐式转换。一元运算符似乎没有类似的东西,但标准将std::complex的一元否定运算符定义为非成员(§26.4.6[complex.ops]),而std::valarray和std::duration的一元否定运算符是成员(§26.6.2.6[valarray.unary],§

c++ - 制作一个 QSharedPointer<void>

由于历史原因,我使用QSharedPointer在我的软件中。在某些时候,我们想要存储boost::shared_ptr指向相同的数据,并且应该使QSharedPointer的实例保持事件状态.执行此操作的常用方法是在boost::shared_ptr的删除器中保留另一个智能指针的拷贝。.但是要防止删除器对不同的T有不同的类型。s,这会阻止轻易获得QSharedPointer返回boost::get_deleter,当相应的boost::shared_ptr已经upcast了,想收藏原帖QSharedPointer作为QSharedPointer在删除器中,而不是使用T.但我发现QSh

c++ - 从函数中存储和返回泛型类型(甚至是 void)

我正在实现一个RPC系统,旨在在远程进程中执行任务。RPC系统的一个节点是Monitor,它应该记录每个调用。templateclassMonitor{public:Monitor(Transporttransport,Journal&journal):transport{std::move(transport)},journal{journal}{}public:templatetypenameMethod::Resultoperator()(constMethod&method){Method::Resultresult;journal("->",Method::Name());r

c++ - enable_if : minimal example for void member function with no arguments

我试图更好地理解C++11中的std::enable_if并且一直在尝试编写一个最小的示例:一个类A带有成员函数voidfoo()根据类模板中的类型T具有不同的实现。下面的代码给出了期望的结果,但我还没有完全理解它。为什么版本V2有效,但V1无效?为什么需要“冗余”类型U?#include#includetemplateclassA{public:A(Tx):a_(x){}//EnablethisfunctionifT==int/*V1*///template::value,int>::type=0>/*V2*/template::value,int>::type=0>voidfoo(

c++ - 为什么 const void* 没有 std::free 重载?

我使用一个externC函数返回动态分配的constchar*.我想使用unique_ptr对其进行管理。但是没有std::free(constvoid*)重载所以我得到invalidconversionfrom'constvoid*'to'void*'并且必须使用const_cast().这只是标准库的缺陷还是背后有其他原因? 最佳答案 std::free继承自C标准库。C没有重载,因此无法继承const重载。虽然C++标准库已经用一些有用的重载扩展了继承的C库,但是free还没有添加const重载。要么从未考虑过这样的过载,要么