gpt4 book ai didi

带有 static_assert 错误的 C++ 模板

转载 作者:行者123 更新时间:2023-11-30 04:07:26 25 4
gpt4 key购买 nike

static_assert 在线错误:预期“(”用于函数式转换或类型构造

#ifndef __L2P__Factory__
#define __L2P__Factory__

#include <iostream>
#include <type_traits>
#include "Initable.h"

namespace l2 {

namespace utils {

template <typename OBJECT, typename CTX>
class Factory {
static_assert(std::is_base_of<Initable<CTX>, OBJECT>, "Factory object should implement Initable protocol");
public:
OBJECT * create(CTX ctx);
};

}

}

#endif /* defined(__L2P__Factory__) */

最佳答案

您正在将类型名称传递给 static_assert。您需要一个 bool expression 或与之转换的东西。这些是您的选择:

std::is_base_of<Initable<CTX>, OBJECT>::value
std::is_base_of<Initable<CTX>, OBJECT>{}
std::is_base_of<Initable<CTX>, OBJECT>()

关于带有 static_assert 错误的 C++ 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22515646/

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