#define NV_API_CALL(nvAPI)
do {
std::ostringstream oss;
int error_code = (int)nvAPI;
if(check(error_code, __LINE__, __FILE__, oss) == false)
throw std::runtime_error{oss.str()};
} while(0)

#define NV_THROW_ERROR( errorStr )
do {
std::ostringstream oss;
oss << __FUNCTION__ << ":" << errorStr << " at " << __FILE__ << ":" << __LINE__ << std::endl;
throw std::runtime_error{oss.str()};
} while(0)

#define CHECK_GUID(guid_list, guid)
do {
auto it = std::find(guid_list.begin(), guid_list.end(), guid);
std::cout << std::string{#guid};
if(it != std::end(guid_list))
std::cout << " exsists" << std::endl;
else
std::cout << " not exsists" << std::endl;
} while(0)


매크로 함수 scope 제한할때 자주쓴다 ㅇㅅㅇ