gpt4 book ai didi

c++ - 函数中的条件 cv 限定符

转载 作者:行者123 更新时间:2023-11-30 01:17:53 26 4
gpt4 key购买 nike

我想使一个方法有条件地成为常量。也就是说,我们有

template <bool isConst>
class A {
// stuff
};

根据模板参数的值,要么

void method() const;

void method();

出现在A的正文中。

我的第一个想法是尝试条件类型,但这行不通,原因很明显。

最佳答案

显而易见的解决方案是特化:

template<bool>
struct A
{
void method() const
{
std::cout << "const" << std::endl;
}
};

template<>
struct A<false>
{
void method()
{
std::cout << "non-const" << std::endl;
}
};

如果您有更多方法并且不想重复它们,请将 A 设为基类 A_base 并派生您的 A从中。 (我将其添加到下面的实例中)

Live example

关于c++ - 函数中的条件 cv 限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23436442/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com