gpt4 book ai didi

c++ - 编译器属性卡在函数类型上——是否有针对此 clang-cl 错误的解决方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:47:19 24 4
gpt4 key购买 nike

在 Visual Studio 2015 中使用 C++ LLVM-vs2014 配置时,此静态断言失败。断言在 clang++、gcc 甚至 Visual C++ 中都不会失败。 thiscall属性卡在函数类型上,即使它不再适用。我已经提交了一份错误报告,但我想知道是否有办法同时强制删除该属性。 thiscall 可以删除吗?

#include <type_traits>

template<typename T>
struct remove_member_pointer;

template<typename T, typename U>
struct remove_member_pointer<T U::*> {
using type = T;
};

struct foo;

using input = void(foo::*)();
using expect = void();
using result = typename remove_member_pointer<input>::type;

//This static_assert fails because there is a
//compiler-generated attribute left behind, making
//the type of result actually `void () __attribute__((thiscall))`
static_assert(std::is_same<result, expect>{}, "");

int main() { return{}; }

Microsoft Visual Studio 社区 2015版本 14.0.24720.00 更新 1

最佳答案

我没有找到 VS 2015 Update 1 的解决方法,但这个问题似乎在 VS 2015 Update 2 中得到了修复。

关于c++ - 编译器属性卡在函数类型上——是否有针对此 clang-cl 错误的解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36026352/

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