gpt4 book ai didi

c++ - 在左值上调用用户定义的文字

转载 作者:搜寻专家 更新时间:2023-10-31 02:05:30 24 4
gpt4 key购买 nike

有什么方法可以在左值上调用用户定义的文字吗?

例如我想

int operator "" _xor1(int a) { return a^1; }

// Works fine
17_xor1;

auto myint = get_something_only_availabe_at_runtime();
// Any way to use _xor1 on myint?

_xor1(myint); // Doesn't work

此外,在编译器资源管理器中编译以下代码时,我惊讶地发现它在运行时已全部解析,尽管所有数据在编译时都是可用的。这是为什么?

constexpr int operator "" _xor1(unsigned long long a) {
return a^1;
}

int main() {
// This code resolves the user defined literal at runtime on gcc,
// msvc and clang - I don't see why I can't use the
// user defined literal at runtime?
return 17_xor1;
}

最佳答案

我不确定您是否真的想要 - 如评论所述,您最好定义一个普通函数并调用它 - 但您可以使用以下方式调用它:

operator""_xor1(myInt);

参见 User-defined literals获取更多信息。

关于c++ - 在左值上调用用户定义的文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51869666/

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