小编dre*_*lax的帖子

c ++中的最终类

class Temp
{
private:
    ~Temp() {}
    friend class Final;
};

class Final : virtual public Temp
{
public:
     void fun()
     {
         cout<<"In base";
     }
};

class Derived : public Final
{
};

void main()
{
    Derived obj;
    obj.fun();
}
Run Code Online (Sandbox Code Playgroud)

上面的代码试图实现不可继承的类(final).但是使用上面的代码仍然可以创建派生的对象,为什么呢?

只有当ctor私有化时才能实现所需的功能,我的问题是为什么在dtor私有的情况下无法实现?

c++ inheritance final virtual-inheritance

13
推荐指数
5
解决办法
2万
查看次数

如何在PostScript中获取字符串的高度指标?

您可以使用当前字体获取字符串的宽度,stringwidth虽然这实际上会推动堆栈上的偏移坐标,但y值似乎总是无用的.有没有办法确定字符串的确切高度,可能包括也可能不包括下行链接?

string fonts metrics postscript

11
推荐指数
2
解决办法
2375
查看次数

带有NSTableView的箭头键

是否可以使用箭头键并输入/ tab在NSTableView周围导航NSTableView的可编辑单元格?例如,我想让它感觉更像电子表格.

该应用程序的用户需要编辑相当多的单元格(但不是全部),我认为如果他们不必双击每个单元格,那么这样做会更容易.

macos cocoa objective-c

11
推荐指数
2
解决办法
5300
查看次数

比fgets更快地读取输入线?

我正在编写一个程序,其中性能非常重要,但并不重要.目前我正在FILE*逐行阅读文本,我fgets用来获取每一行.在使用了一些性能工具之后,我发现我的应用程序运行时有20%到30%的时间在内部fgets.

有没有更快的方法来获得一行文字?我的应用程序是单线程的,无意使用多个线程.输入可以来自stdin或来自文件.提前致谢.

c optimization file-io stdin fgets

11
推荐指数
1
解决办法
1万
查看次数

在NSString中转义字符如newline和double-quote的最佳方法

假设我有一个NSString(或NSMutableString)包含:

I said "Hello, world!".
He said "My name's not World."
Run Code Online (Sandbox Code Playgroud)

将其转化为以下内容的最佳方法是:

I said \"Hello, world!\".\nHe said \"My name\'s not World.\"
Run Code Online (Sandbox Code Playgroud)

我是否必须手动使用-replaceOccurrencesOfString:withString:一遍又一遍来转义字符,还是有更简单的方法?这些字符串可能包含其他字母/语言的字符.

如何在其他语言中使用其他字符串类完成此操作?

string macos cocoa

10
推荐指数
2
解决办法
3万
查看次数

是否可以检查是否使用Microsoft C编译器构建64位?

是否有为64位版本定义的简单预处理器宏?我认为_WIN64可能是它,但即使我构建一个32位目标,包含在a #ifdef _WIN64 ... #endif中的部分也会编译进来,这会导致问题.这是周五,我不能直接思考,但我确信我在这里忽略了一些非常简单的事情.甚至一些涉及sizeof.

c windows 64-bit visual-c++

9
推荐指数
3
解决办法
8522
查看次数

你在哪里放置NSDocument子类的清理代码?

我有一个基于文档的应用程序,我已经分类NSDocument并提供了所需的方法,但我的文档需要一些广泛的清理(需要运行外部任务等).把它放在哪里最好的地方?我尝试过几种不同的方法,例如:

  • close
  • close:
  • canCloseDocumentWithDelegate:shouldCloseSelector:contextInfo
  • dealloc

如果我把它放入dealloc,有时它会被调用,有时它不会被调用(按下Command + Q似乎绕过我的文件的释放),但是必须在没有失败的情况下调用此代码(除非程序意外终止).

macos cocoa document-based nsdocument

8
推荐指数
2
解决办法
2274
查看次数

外壳中的棘手支撑扩展

使用POSIX shell时,如下所示

touch {quick,man,strong}ly
Run Code Online (Sandbox Code Playgroud)

扩展到

touch quickly manly strongly
Run Code Online (Sandbox Code Playgroud)

哪个会触及文件quickly,manlystrongly,但是可以动态创建扩展吗?例如,以下说明我想要做什么,但由于扩展顺序不起作用:

TEST=quick,man,strong    #possibly output from a program
echo {$TEST}ly
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?如果需要,我不介意将自己限制在Bash.我也想避免循环.扩展应该作为任意程序的完整参数给出(即,对于每个文件,程序不能被调用一次,对于所有文件只能调用一次).我知道xargs但我希望它能以某种方式从shell中完成.

bash shell brace-expansion

8
推荐指数
1
解决办法
3286
查看次数

使用Cocoa确定两个日期之间的月数

如何使用Cocoa计算两个日期之间的月数?

谢谢,斯坦

cocoa date objective-c nsdate

8
推荐指数
3
解决办法
7684
查看次数

等待文件可用于使用Win32进行读取

我正在通过ReadDirectoryChangesW同步调用来查看目录.当一个新文件可用时,我尝试CreateFile使用GENERIC_READ和立即访问它FILE_SHARE_READ,但这给了我ERROR_SHARING_VIOLATION.将文件放入监视目录的过程在我尝试读取它时没有完成写入.

有没有办法可靠地等到文件可供读取?我可以将方法放入如下所示的循环中,但我希望有更好的方法.

while ((hFile = CreateFile (path, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE)
{
    if (GetLastError() == ERROR_SHARING_VIOLATION)
        Sleep (500);
    else
        break; // some other error occurred
}

if (hFile == INVALID_HANDLE_VALUE)
{
    // deal with other error
    return 0;
}

ReadFile (...);
Run Code Online (Sandbox Code Playgroud)

c file-io winapi synchronous

8
推荐指数
2
解决办法
3432
查看次数