我只想要一个确认,在我看来,如果我正在编写一个foo
函数,并且我想给出一个关于用于输出的对象的灵活选项,我会使用{{1 }}类似std::ostream&
类型,因此void foo(std::ostream& stream, ... )
的用户可以从foo
,std::cout
中选择任何内容到通用文件输出。
你能否证实这是一个不错的选择?我唯一的疑问是即使在需要并发访问的情况下也要干净利落地工作,但我认为用户总是希望自己管理锁(因为我不认为I / O流可能是原子的)在调用此函数之前和之后,所以我并不认为用于输出的函数应该在其自己的定义中包含并发设计的元素。
答案 0 :(得分:1)
是的,这听起来不错。
我甚至在我自己的代码中使用它!
我大多同意foo
不应该锁定,但如果不了解应用程序的更多信息,很难断言。听起来你很清楚所涉及的选择,所以我会把这部分留给你判断。