【发布时间】:2011-09-09 07:06:23
【问题描述】:
将operator "" (...) 定义为友元函数是否可行和/或有用?
class Puzzle {
friend Puzzle operator "" _puzzle(const char*, size_t);
...
};
void solve(Puzzle);
int main() {
solve("oxo,xox"_puzzle);
};
我正在考虑“有用”,特别是因为operator "" 只能在命名空间中定义的规则——尤其是因为以_ 开头的标识符被保留在全局命名空间中。这是friend 在这里打破这条规则吗?所以,这种不完全的封装不会有任何好处,对吧?
【问题讨论】:
标签: c++ c++11 friend-function user-defined-literals