adl,引數相關查詢,也稱作為koenig查詢(以andrew koenig的名字命名),
是指在編譯器對無限定域的函式呼叫進行名字查詢時,所應用的一種查詢規則。
f(x, y, z); // unqualified
n::f(x, y, z); // qualified
上面的函式呼叫,第乙個f就是無限定域的函式呼叫,第二個則限定了在名字空間n裡面,也是說使用了完全限定名。
我們首先來看乙個函式所在的域的分類:
1:類域(函式作為某個類的成員函式(靜態或非靜態))
2:名字空間域
3:全域性域
而koenig查詢,它的規則就是當編譯器對無限定域的函式呼叫進行名字查詢時,除了當前名字空間域以外,
也會把函式引數型別所處的名字空間加入查詢的範圍。
請看下面完整的例程:
// details /ad1.cpp
// cfree 3.5 下編譯執行通過
#include
namespace x
namespace n;
void f(e)
}void f(int)
//using namespace n;
int main()
注意這裡的f()不是成員函式,可以通過下例區別
// details /ad2.cpp
#include
namespace x
class n ;
void f(e)
};//using :: n;
void f(int)
int main()
你看區別出來了吧,這裡兩個f()進行普通查詢。
多表連線查詢簡析
本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。www.2cto.com 一 外連線 外連線可分為 左連線 右連線 完全...
關於ADL的查詢順序
argument dependent lookup或koening lookup法則 當我們給函式傳遞乙個類型別的物件時,首先會在常規的作用域查詢,其次在實參類所屬的命名空間查詢。查詢順序如下 1.先在本作用域內查詢 2.在實參的命名空間 和 全域性作用域中 同時查詢 這一規則也叫做argument...
Druid索引與查詢原理簡析
druid 是乙個為在大資料集之上做實時統計分析而設計的開源資料儲存。這個系統集合了乙個面向列儲存的層,乙個分布式 shared nothing的架構,和乙個索引結構,來達成在秒級以內對十億行級別的表進行任意的探索分析。由於druid儲存的是時間序列資料,按列的型別,上述資料可以分為以下三類 我們用...