は私がこれを行う場合、私はエラー「エラーC2446コンパイル取得C++なステートメント
..私はここで何かが足りないと思うが、何を把握することはできません場合にスーパークラスを呼び出す: 『:』: 'から変換なしにconstのブースト:: try_to_lock_t '」
public:
explicit BasicScopedLock(CCondition& condition, bool initiallyLocked = true)
: LockType(condition.mutex, (initiallyLocked == true ? (boost::try_to_lock) : (boost::defer_lock)))
, m_condition(condition)
{
}
しかし、私はこれを行う場合、それはコンパイル「から' constのブースト:: defer_lock_t。これは、あまりにも動作します
public:
explicit BasicScopedLock(CCondition& condition, bool initiallyLocked = true)
: LockType(condition.mutex, boost::try_to_lock)
, m_condition(condition)
{
}
...
public:
explicit BasicScopedLock(CCondition& condition, bool initiallyLocked = true)
: LockType(condition.mutex, boost::defer_lock)
, m_condition(condition)
{
}
誰もがここに声明場合、コンパイラは好きではない理由についての手掛かりを持っていますか?
ありがとうございました!
どこ 'if'文がある
LockType
への宣言を変更しますか?あなたは '三元表現'を意味しましたか? – Barmar'if'文はどこにありますか?あなたは_条件式を意味しましたか? –
「クラスを呼び出す」とはどういう意味ですか?メソッドは、クラスではなく呼び出すことができます(あなたが 'operator()'について話している場合を除く)。 –