模板編譯器
⑴ C++ VS2010編譯器報錯:未專用化的類模板不能用模板變數
呃, 好多錯誤...
const ID_ id 中的 const 會被編譯器忽略掉, 可以不寫(這個不算錯誤).
這是一個最基本的Error: 類定義 後面 要有 ; 結尾.
ID_ 既然是 int 的 alias, 那 類C 就是一個 非類型實參的類模板. 也就是說, C<> 的 <> 中應該是個 int的數字, 不能是 int 或者 ID_, 或者 其它類型.
對於 C++98 C++03 而言, vector<C<5> > 中最後面的 兩個 大於號之間 必須要有至少一個空格. 這是語法規定. 除非你的編譯器支持 C++11, 而且你在編譯的時候 指定了編譯選項
-std=c++14
或者
-std=c++11
最後, 一個修改後的版本:
#include<vector>
typedefintID_;
template<ID_id>
classC
{
public:
voidsay(){};
};
//typedefstd::vector<C>CVec;//報錯
//typedefstd::vector<C<ID_>>CVec;//報錯
//typedefstd::vector<C<int>>CVec;//報錯
typedefstd::vector<C<1>>CVec;//注意:這三個是不同的類型
typedefstd::vector<C<2>>CVec;//注意:這三個是不同的類型
typedefstd::vector<C<999>>CVec;//注意:這三個是不同的類型
intmain()
{
CVecvec;
return0;
}
最最後, 歡迎交流. :)
⑵ 自己可以做96編輯器模板嗎
當然可以做了,如果你的能力夠可以自己去網上購買一些零件自己編輯。
⑶ ZineMaker 2007 模板編輯器下載
Zinemaker 2007
zinemaker 2007是一款免費的電子雜志製作軟體
採用EXE文件,內置FLASH8播放器
⑷ 哪位大俠能夠幫個忙,有個模板的C++程序,編譯器總報錯,可是我不明白呀
#include <iostream>
using namespace std;
template<typename T>
class element{
public:
T data;
element* link;
};
template<typename T>
class operate{
public:
element<T>* top,*save,*temp; // 提供模板參數
element<T>* b;
int loop,amount;
char choice;
public:
operate();
void input();
void calculate();
void show();
~operate();
};
template<typename T>
operate<T>::operate(){
top=NULL;
b=new element<T>; // T
}
template<typename T>
void operate<T>::input(){
cout<<"\n===========請您輸入數據===========\n";
for(loop=1;;loop++){
cout<<"是否繼續?<y/n>:";
cin>>choice;
if(choice=='y'){
cout<<"NO."<<loop<<":";
temp=new element<T>; // T
cin>>temp->data;
cin.ignore(1);
temp->link=top;
top=temp;
}
else break;
}
amount=loop-1;
}
template<typename T>
void operate<T>::show(){
for(temp=top,loop=1;temp!=NULL;temp=temp->link,loop++){
cout<<"NO."<<loop<<":"<<temp->data<<endl;
}
}
template<typename T>
void operate<T>::calculate(){
for(int i=1;i<=amount-1;i++){
for(temp=top;temp->link!=NULL;){
save=temp;
temp=temp->link;
if(save->data<temp->data){
(b->data)=(save->data);
save->data=temp->data;
temp->data=b->data;
}
}
}
}
template<typename T>
operate<T>::~operate(){
temp=top;
delete b;
while(temp!=NULL){
save=temp->link;
delete temp;
temp=save;
}
if(temp==NULL) cout<<"\n內存空間釋放完畢\n";
}
void main(){
operate<int> a;
a.input();
a.calculate();
a.show();
}
⑸ C++模板:這個程序為什麼通不過編譯(C++11)
DoIt 是個模板方法. 要告訴編譯器當成 模板方法對待.
B<T>::templateDoIt<Opr>();
改成這樣就可以了...
⑹ 下面是一個模板類的友元類,我用的編譯器是vc 6.0
//我也剛好遇到類似的問題,以前遇到都放棄了,遇到你也有同樣的問題,
//幾經搜索,終於得到答案,共勉!(VC++6.0下通過!)
#include <iostream>
using namespace std;
template<class T> class v2;//將這里最後的"<T>"去掉即可!
template<class Type>
class v1
{
public:
friend class v2<Type>;
private:
int a;
};
template<class T>
class v2
{
private:
T b;
};
int main()
{
return 0;
}
⑺ 為什麼C++編譯器不能支持對模板的分離式編譯
並不是都不支持,有少部分編譯器還是支持的,比如ICC和Comeau C/C++。
從標准上來說,C++標准中規定可以通過export關鍵字來指定模版的分離編譯,但大多數編譯器都沒有實現。
因為這個特性很難通過傳統的編譯-鏈接過程來實現,需要另外非常復雜的處理過程,編譯器不得不為其單獨生成一個中間代碼,實現起來非常麻煩,大多數編譯器廠商對其持抵制態度。所以導致了這個特性雖然是C++標准中規定的,但卻在事實上幾乎不成立。
⑻ 公眾號模板編輯器有哪些啊
推薦微小寶編輯器,現在網路上的編輯器各式各樣,有微小寶,135,秀米,西瓜等等,微小寶的功能豐富,素材更多,操作方便。135做的比較細,功能不夠齊全,西瓜是收費,秀米適合H5頁面製作,在不考慮做H5頁面的情況下,我個人一般使用微小寶居多,比較免費,還有素材。
⑼ C++模板類實例化,編譯器報錯
第一種方法意味著在使用模板的轉換文件中不但要包含模板聲明文件,還要包含模板定義文件。在上例中,就是第一個示例,在array.h中用行內函數定義了所有的成員函數。或者在main.cpp文件中也包含進array.cpp文件。這樣編譯器就能看到模板的聲明和定義,並由此生成array<int, 50>實例。這樣做的缺點是編譯文件會變得很大,顯然要降低編譯和鏈接速度。
第二種方法,通過顯式的模板實例化得到類型。最好將所有的顯式實例化過程安放在另外的文件中。在本例中,可以創建一個新文件templateinstantiations.cpp:
// templateinstantiations.cpp
#include "array.cpp"
template class array <int, 50>; // 顯式實例化
⑽ c++模板是什麼幫我解釋下,謝謝!
簡單的說, 模板相當於由編譯器負責處理的宏(宏是由預處理器進行簡單的文本替換), 在模板中制定參數後編譯器會根據制定的參數代入到具體的函數或類里.
例:
template <typename t>
t f()
{
t a;
return a;
}
在f<int>()處編譯器會用int代替t生成函數f的具體定義:
int f()
{
int a;
return a;
}