小编Chr*_*ier的帖子

boost :: function的默认构造函数是否为无抛出保证?

问题出在标题中.我在参考文档中找不到相关信息.我不明白为什么默认构造函数会抛出,但我需要确保它是无法正确记录我的异常保证.

c++ boost exception boost-function

5
推荐指数
1
解决办法
521
查看次数

使用Boost.Units定义百分比

我想percent用Boost.Units 实现一个单元,这样无量纲的数量(比如一个比例)可以表示为百分比.我已成功实现了质量密度单位之间的转换,但同样不适用于无量纲单位.这是我的代码(假设using namespace boost::units;):

//
// gram per milliliter (g mL^-1)
//
namespace my {
        struct gram_per_milliliter_base_unit :
                base_unit<gram_per_milliliter_base_unit, mass_density_dimension, 1>
        {
                static std::string name() {return "gram per milliliter";}
                static std::string symbol() {return "g mL^-1";}
        };
        typedef gram_per_milliliter_base_unit::unit_type gram_per_milliliter_unit;
        BOOST_UNITS_STATIC_CONSTANT(gram_per_milliliter, gram_per_milliliter_unit);
        BOOST_UNITS_STATIC_CONSTANT(grams_per_milliliter, gram_per_milliliter_unit);
}
BOOST_UNITS_DEFINE_CONVERSION_FACTOR(
        my::gram_per_milliliter_base_unit, si::mass_density, double, 1.0e3
); // 1 g mL^-1 == 1e3 kg m^-3 (SI unit)
BOOST_UNITS_DEFAULT_CONVERSION(my::gram_per_milliliter_base_unit, si::mass_density);

//
// percentage (%)
//
namespace my {
        struct percent_base_unit :
                base_unit<percent_base_unit, dimensionless_type, 2> …
Run Code Online (Sandbox Code Playgroud)

c++ boost units-of-measurement

4
推荐指数
1
解决办法
1077
查看次数

为什么没有 boost::enable_if 的 std 等价物?

在 C++11 中,std::enable_if被添加到标准库中。它相当于boost::enable_if_c其条件为 a bool。这适用于相当简单的条件,但是一旦您使用将结果保持为value常量的谓词,您就必须使用更详细的构造my_predicate<MyArgs>::value将其转换为bool. 这正是boost::enable_if(无_c后缀)的目的。

为什么标准库中没有等价物?

boost stl enable-if template-meta-programming c++11

3
推荐指数
1
解决办法
268
查看次数