6
と1.53ローカルの日付時刻のコンパイラエラーを私は-std = C++ 0xの私は、以下を取得して、次のブースト-std = C++ 0xの
#include <boost/date_time/local_time/local_time.hpp>
class Bar
{
public:
Bar() { tz_db_.load_from_file("/home/date_time_zonespec.csv"); }
private:
boost::local_time::tz_database tz_db_;
};
int main()
{
return 0;
}
をコンパイルしようとすると、G ++バージョン4.7.2を使用してエラー。
In file included from /usr/local/include/boost/date_time/local_time/local_time_types.hpp:18:0,
from /usr/local/include/boost/date_time/local_time/local_time.hpp:13,
from test.h:4,
from test.cpp:1: /usr/local/include/boost/date_time/local_time/custom_time_zone.hpp: In instantiation of ‘bool boost::local_time::custom_time_zone_base<CharT>::has_dst() const [with CharT = char]’: test.cpp:11:1: required from here /usr/local/include/boost/date_time/local_time/custom_time_zone.hpp:67:30: error: cannot convert ‘const boost::shared_ptr<boost::date_time::dst_day_calc_rule<boost::gregorian::date>
>’ to ‘bool’ in return
私がC++ 0xオプションをオフにしても、すべて問題ありません。 誰でもここで何が起こっているか教えていただけますか?
ありがとうございました。 – Craig
[1.53リリースノート](http://www.boost.org/users/history/version_1_53_0.html): 'スマートポインタは、C++ 11コンパイラで明示的な演算子boolを使用するようになりました。これは、ブールを取る関数へのスマートポインタを渡すコード、またはブール戻り型の関数からのスマートポインタを返すコードを破る可能性があります。この場合、p!= 0または!! pを使用してください。 ' –
スマートポインタの変更は日付のバグを引き起こしましたか? – Craig