问答

c – 具有嵌套类型的类的概念

 来源    2019-05-05    0  

我正在编写一个概念,要求类具有ValueType类型别名,并且具有静态函数Check,它接受ValueType并返回void.

这是我到目前为止:

template <typename T>
concept bool Predicate()
{
    return requires(T object)
    {
        typename T::ValueType;
        requires (T::ValueType value)
        {
            {T::Check(value)} -> void;
        };
    };
}

这不会编译时出现以下错误:error:expected’)’在’value’之前.

这是我找到的一个解决方案,它包括在两个独立的概念中拆分谓词:

template <typename T>
concept bool HasCheck()
{
    return requires (typename T::ValueType value)
    {
        {T::Check(value)} -> void;
    };
};

template <typename T>
concept bool Predicate()
{
    return requires(T object)
    {
        typename T::ValueType;
        requires HasCheck<T>();
    };
}

wandbox example

或者,您可以将require条款与&&:链接起来:

template <typename T>
concept bool Predicate()
{
    return requires(T object)
    {
        typename T::ValueType;
    }
    && requires (typename T::ValueType value)
    {
        {T::Check(value)} -> void;
    };
}

wandbox example

相关文章
C#中私有类的概念
问答C#中可以存在私有类,而不是在Inner类中?::只是没有没有什么,除非它在一个嵌套的类 >不嵌套在其他类或结构体中的类和结构体可以是公共的或内部的.声明为public的类型可以由任何其他类型访 ...
swift – 如何从具有相同名称的嵌套类型的类中引用全局类型?
问答我有一个在全局范围内声明的类,另一个具有相同名称的类嵌套在某个类中. class Address { var someProperty: String? } class ThirdPartyAPI { ...
UML类图概念与规范与实现
问答我目前正在阅读Martin Fowler的UML Distilled.我刚刚介绍了关于类图的部分,他强调在建模类图之前需要整理透视图.但是,我对实际绘制类图时的实际看起来有点困惑.据我所知,理论上的含 ...
从C和Java到Ada的类制定概念
问答也许C和Java人员可以帮我定义这个我要解释的问题.关于如何表示实现动态标识符的三个主要分支的类的构造函数,我在Ada(你不需要知道它,我只是对这个概念感兴趣)有一个问题: >纯数值(int,f ...
Java是否具有引用所有权或不可复制类的概念?
问答我想保证某些特定类内容的实例只能由其"所有者"访问,如果另一个对象需要相同的内容,则需要进行深层复制.来自C我将使用unique_ptr实现这一点,Java中有类似的东西吗? 目前 ...
ES6入门——类的概念
日志1.Class的基本用法 概述 JavaScript语言的传统方式是通过构造函数,定义并生成新对象.这种写法和传统的面向对象语言差异很大,下面是一个例子: function Point(x, y) { ...
matlab面向对象设计---类的概念和使用
日志代码: classdef MadgwickAHRS < handle %MADGWICKAHRS Implementation of Madgwick's IMU and AHRS algori ...
8.类的概念、定义、属性、继承
日志1.面向对象(Object Oriented,OO)概念 面向对象,是我们编程的一种思维.早期的计算机编程是基于面向过程的方法,例如实现算术运算1+1+2 = 4,通过设计一个算法就可以解决当时的问题 ...
OOPS概念:在C#中传递对象引用到接口和创建类对象有什么区别?
问答我有一个类,CustomerNew和一个接口,ICustomer: public class CustomerNew : ICustomer { public void A() { MessageBo ...
c – 为什么类的静态成员函数没有“常量正确性”的概念?
问答用例: class A { static int s_common; public: static int getCommon () const { s_common; }; }; 通常会导致以下错误 ...
c# – 使用类类型列表(或类似概念)来限制有效输入
问答我有一些继承自抽象基类Airplane的类,例如: Airplane -> F15 -> F16 -> Boeing747 假设我想创建另一个类AirplaneFactory,它接受 ...
函数式编程 – 代数数据类型的概念是否类似于OO语言中的类定义?
问答这两个概念都允许创建新的数据类型. 我能看到的唯一区别是,在函数式语言中,可以对代数数据类型执行模式匹配.但OO语言没有类似的简洁功能.这是一个准确的陈述吗?::我可以看到代数数据类型和OO风格类之间 ...
C概念与Haskell类型类有何不同?
问答概念TS中的C概念最近被并入GCC中继线.概念允许通过要求类型来满足概念的条件(例如"可比较")来约束通用代码. Haskell有类型类.我不太熟悉哈斯克尔概念和类型类如何相关?: ...
Scala在隐式类中创建的不兼容的嵌套类型
问答提供的代码片段是一个简单的简约示例,仅用于演示问题,与实际业务逻辑类型无关. 在下面的代码中,我们在Registry类型中有一个嵌套的Entry类型. class Registry[T](name: ...
jQuery还是JavaScript有类和对象的概念?
问答我发现以下代码在某处,但我不能正确理解代码. ArticleVote.submitVote('no');return false; ArticleVote是一个类,并且submitVote()是该类的 ...
优化 – 清理V8的“隐藏类”概念
问答我已经阅读了关于V8的隐藏课程的一些文章.不过,我还有几个问题: 如果说,有两个对象: var a = { } a.x = 5 a.y = 6 var b = { } b.y = 7 b.x = 8 ...
概念UML类图和ERD之间的区别?
问答如果我创建一个概念类图,以便每个类捕获"名称"和"属性"而不是"操作",那么我没有基本创建什么会被认为是ERD?我想了解创建概念类图之间的区 ...