operator "" (...)
将 an 定义为友元函数是否可能和/或有用?
class Puzzle {
friend Puzzle operator "" _puzzle(const char*, size_t);
...
};
void solve(Puzzle);
int main() {
solve("oxo,xox"_puzzle);
};
我正在考虑“有用”,特别是因为operator ""
应该只在命名空间中定义的规则——尤其是因为以开头的标识符_
被保留在全局命名空间中。这friend
违反了这个规则吗?所以,这种不完全的封装不会有任何好处,对吧?