CheckReturn 檢查返回值

2021-07-03 17:30:27 字數 783 閱讀 6363

loki庫提供了一種方法,要求函式返回後,使用者必須對其進行檢查或則賦值。以必須判斷指標為例進行說明。

自己寫的**簡化了很多

checkreturn.h

#pragma once

#include

template

struct triggerassert

};// 檢查函式返回值是否被賦值了,如果沒有被賦值,則認為是非法的。必須給返回值賦值,即必須有所有權,不能出現中間變數

templateclass tassert = triggerassert>

class ccheckreturn

/// 必須轉換成bool檢查

// 此處也可以將bool替換成t表示必須賦值

inline operator bool ( void )

inline ~ccheckreturn( void )

private:

const t* m_value;

mutable bool m_checked; //是否被check過了。如果呼叫過operator則會賦值為true

};測試使用。

#include "stdafx.h"

#include "testcheckreturn.h"

#include "checkreturn.h"

class ctestptr

void ctestcheckreturn::test()

int ii = 10;

}我們可以根據這個思想實現我們想要的其它檢查



檢查new的返回值

我們知道,使用malloc calloc等分配記憶體的函式時,一定要檢查其返回值是否為 空指標 亦即是檢查分配記憶體的操作是否成功 這是良好的程式設計習慣,也是編寫可靠程式所必需的。但是,如果你簡單的把這一招應用到new上,那就不一定正確了。我經常看到類似這樣的 int p new int size...

檢查 new 的返回值

我們都知道,使用 malloc calloc 等分配記憶體的函式時,一定要檢查其返回值是否為 空指標 亦即檢查分配記憶體的操作是否成功 這是良好的程式設計習慣,也是編寫可靠程式所必需的。但是,如果你簡單地把這一招應用到 new 上,那可就不一定正確了。我經常看到類似這樣的 int p new int...

C C 誤區五 檢查 new 的返回值

首先澄清一下,這個誤區僅對 c 成立,這裡不過是沿用 c c 誤區 這個銜頭罷了。我們都知道,使用 malloc calloc 等分配記憶體的函式時,一定要檢查其返回值是否為 空指標 亦即檢查分配記憶體的操作是否成功 這是良好的程式設計習慣,也是編寫可靠程式所必需的。但是,如果你簡單地把這一招應用到...