2016-09-23 1 views
3

Borlandの32ビットコンパイラを使用してMySql ++をコンパイルしようとしています。このコンパイラは、いくつかのテンプレート構文に問題があることはよく知られています。コンパイラはclangコンパイラに置き換えられているため、ほとんど廃止されています。BorlandコンパイラのC++テンプレートコードの書き換え方法

ただし、次のコードをコンパイル可能なバージョンに修正できる場合は、時間が節約されます。

コンパイラエラーが次の行で発生:

template <> MYSQLPP_EXPORT bool String::conv(bool) const; 

コンパイラエラーがある:

[BCC32エラー] mystring.h(726):文字列「のE2506明示的な特化::コンボ<タイプ>(タイプ)const 'はあいまいです:テンプレート引数を指定する必要があります
フルパーサーコンテキスト
transaction.cpp(#)#include lib \ query.h
query.h(37):#include lib \ result.h
result.h(40):#include lib \ row.h
row.h(33):#include lib \ mystring.h
mystring .H(46):名前空間mysqlpp

Stringは、カスタム文字列クラスで、conv()機能がStringクラス内のインラインテンプレート関数である:

/// \brief Template for converting the column data to most any 
/// numeric data type. 
template <class Type> 
Type conv(Type) const 
{ 
    // Conversions are done using one of double/long/ulong/llong/ullong 
    // so we call a helper function to do the work using that type. 
    // This reduces the amount of template code instantiated. 
    typedef typename detail::conv_promotion<Type>::type conv_type; 
    return do_conv<conv_type>(typeid(Type).name()); 
} 

私は、様々な変更をしようとしましたが、成功なし。

+0

あなたはこれらの提案を試してみました?:http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devwin32/compile_errambigtspec_xml.html – mike

+2

は 'テンプレート<> MYSQLPP_EXPORTブール値の文字列をい:: CONV (bool)const; '仕事? – NathanOliver

+0

ありがとうNathanOliver。それは完璧に働いた!あなたのコメントを正しい答えにするにはどうすればいいですか? –

答えて

0

この答えはnathanoliver

template <> MYSQLPP_EXPORT bool String::conv<bool>(bool) const; 

この沈黙BCC32コンパイラによって与えられました...!

関連する問題