Я следующий код, который я хочу работать и на Linux с GCC 4.8который является хорошей практикой использовать функцию доступа
Это работает с VS 2013
if (_access(trigger->c_str(), 0) != -1)
{
...
}
Я знаю, что на Linux Я могу использовать функцию: доступ из «unistd.h»
Есть ли способ избежать появления следующего: (более элегантное решение)?
#ifdef __linux__
#include <unistd.h>
#endif
#ifdef __linux__
if (access(trigger->c_str(), 0) != -1)
{
...
}
#else
if (_access(trigger->c_str(), 0) != -1)
{
...
}
#endif
Интересно, что [MSDN считает «доступ» устаревшим] (https://msdn.microsoft.com/en-us/library/ms235395.aspx). –
... и я получаю горе, когда утверждаю, что Microsoft рассматривает C++ как гражданина второго сорта. Утверждение, что 'access()' устарело, является глупым по его номиналу. –
@SamVarshavchik У них для этого есть веская причина. –