Ale*_*ara 0 c++ operator-overloading c++20
是否可以在 中C++重载""_something函数标识符或可调用函数的运算符以使其具有自定义行为?
我最近在这个 cppcon 视频中看到了类似的内容,其中演示者展示了如何使用模块、零宏构建单元测试框架......但我不太明白这是如何""_test可能的,或者如何C++理解该可调用应该执行这种操作定义在运算符重载实现的主体中。
template <typename T>
auto "some_name"_test(T a, T b);
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下这背后的细节吗?
UDLoperator ""只是一个函数调用。函数可以返回任何内容。例如,它们可以返回一个具有重载的对象类型operator(),因此是可调用的。它们可以返回带有重载的对象类型operator=,因此是可分配的。ETC。
这与如何重载 UDL 运算符无关;而是与如何重载 UDL 运算符有关。这是关于你的超载返回的结果。