在Visual Studio中,__declspec(property)创建了与C#类似的属性.Borland C++提供的__property关键字具有完全相同的功能.在C++ 0x中,提到了一个implicit可以扩展以实现相同功能的关键字.但它没有进入规范.
我正在寻找一种可移植且相对干净的方法来声明语法上含糖的属性,这些属性将在最新的Windows,OSX和Linux编译器中编译.我不关心编译器兼容性,每个平台只有一个编译器.
我不是在寻找需要括号来获取或设置属性的属性的替代方法,例如分隔getter和setter的重载方法.
这是在Visual Studio 2010中编译的理想用法:
#define _property(_type, _name, _get, _put) __declspec(property(get=_get, put=_put)) _type _name
#define _property_readonly(_type, _name, _get) __declspec(property(get=_get)) _type _name
class Window
{
public:
_property_readonly(void*, Handle, GetHandle);
_property(bool, Visible, GetVisible, SetVisible);
void* GetHandle();
bool GetVisible();
void SetVisible(bool);
}
void main()
{
Window MainWindow;
if (!MainWindow.Visible)
MainWindow.Visible = true;
}
Run Code Online (Sandbox Code Playgroud) 我以"-d -m"开头的任何会话都不接受"-X stuff [...]"命令,除非我已经连接到屏幕至少一次.没有错误消息,命令无法通过.
问题是我从cron作业启动会话,无法从cron内部附加到屏幕.
重复的步骤
$ screen -m -d -S mydaemon bash
$ screen -S mydaemon -X stuff "`printf "exit\\r"`"
$ screen -ls
32456.mydaemon (Detached)
$ screen -r -S mydaemon
$ ^a d
$ screen -S mydaemon -X stuff "`printf "exit\\r"`"
$ screen -ls
No Sockets found in /var/run/screen/S-user
Run Code Online (Sandbox Code Playgroud)
^ ad表示按Ctrl + a然后按d.
版本
CentOS release 5.5 (Final)
Screen version 4.00.03 (FAU) 23-Oct-06
Run Code Online (Sandbox Code Playgroud)