C++テンプレート別名typedef代替案

1077 ワード

by  [csdn]@plainsong——
template  
struct   Func 
{ 
    typedef   T   (*result)(T   n); 
}; 

使用時:[typename]Func::元のFuncの代わりにresultを使用
vc7.01のコンパイル結果は遅く、Bcc 32 5.6よりも遅く、正しい設定方法が見つからなかったかもしれません.VC7.01の標準的なサポートはまだよくありませんが、よく使われるテクニックはすべて使えます.まだexportテンプレートbcc 32 5.6はサポートされていないようです.4対5.6はあまり改善されていないので、Bugを少し補充しました.李維氏によると、新版のBCBXのコンパイラは標準サポートとコンパイル最適化の面で大きく改善され、C 99もサポートされる(これは珍しい)という.いつ出るか分からない.
by  [cppblog]@Cpper——
typedefのテンプレートが必要になる場合がありますが、c++には直接的な解決策がありません.つまり、これは不可能です.typedef std::vector myvector;間接的な解決策は、(このコードはゲモゲームエンジンコードに由来する)
#include 
typedef flex_string engine_string;
#include      
template      
struct vector_typedef
{
    typedef yasli::vector > type;
};   
template      
struct list_typedef
{
    typedef yasli::vector > type;       
};  

使うときはこんな感じ
list_typedef::type  v;
list_typedef::typedef veclist;
list_typedef::type veclist;
...