operator "" (...)
をフレンド関数として定義することは可能かつ/または有用ですか?
class Puzzle {
friend Puzzle operator "" _puzzle(const char*, size_t);
...
};
void solve(Puzzle);
int main() {
solve("oxo,xox"_puzzle);
};
名前空間でのみ定義されるルールのため、特に「有用」について考えています。特に、でoperator ""
始まる識別子_
はグローバル名前空間で予約されているためです。これはfriend
ここでこの規則に違反していますか? ですから、このカプセル化が不十分であることに何のメリットもありませんよね?