【问题标题】:How to define Boolean class using boost, the possible value should be TRUE or FALSE?如何使用 boost 定义布尔类,可能的值应该是 TRUE 或 FALSE?
【发布时间】:2018-08-29 07:08:10
【问题描述】:

我正在尝试实现布尔的 API,我需要实现 KMboolean 类,可能的值应该是 true 或 false。

有没有其他方法可以使用定义的类来实现布尔(API)功能。请帮我解决我的问题。

这是我的sn-p代码:

typedef KMBoolean;

我是 API 实现的新手,我不确定我的方式是对还是错,请任何人帮助我以一般方式实现以定义布尔功能。

我从互联网上得到这个东西,我需要改变而不是 struct to class 并且应该使它成为包装类。有人请帮忙

#include <boost/mpl/bool.hpp>
#include<iostream>

template<bool C>
struct Boolean
{
};

typedef Boolean<true>  true_;
typedef Boolean<false> false_;
int main()
{
}

我是从网上得到的,对此我不太了解。有可能这样做吗?请帮忙

【问题讨论】:

  • 我不明白你在做什么。为什么不能只使用bool。请说明您的目标(您为什么要这样做)和期望的用途。
  • 您的代码的 sn-p 也远不及有效的 C++ 语法。
  • 我正在为 boost 实现库,我需要一个应该执行布尔功能的类,因为我使用了“typedef KMBolean”。我想现在很清楚了。
  • 不是真的不,不清楚。 “我需要一个应该执行布尔功能的类”不清楚你的意思。举例说明您为什么需要它,我们将了解您的需求。你需要在哪里使用这样的类? “因为我使用了typedef KMBoolean”这也不清楚,因为typedef KMBoolean 不是有效的C++ 代码,因此它什么也没告诉我们。
  • 我正在研究库替换,因为我需要等效的 boost 库代码,他们在那里定义了自己的类来使用 typedef 实现布尔功能,我知道我的代码是错误的,请建议纠正或者是我的方式完全错误?或者是否可以为布尔值编写包装类?请提出建议。

标签: c++ linux c++11 boost


【解决方案1】:

我正在研究库替换,因为我需要同等的提升 库代码

C++11 等价于(或多或少)boost::mpl::bool_std::integral_constant&lt;bool&gt;,因为它是常用的,甚至有一个模板别名 std::bool_constant 和 typedefs std::true_type - 等价于 boost::mpl::true_ 和 @987654328 @ - 相当于boost::mpl::false_

所以你真的不需要实现任何东西,只需使用std::bool_constant

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-08
    • 2019-11-26
    相关资源
    最近更新 更多