您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ FC_ASSERT函数代码示例

51自学网 2021-06-01 20:40:46
  C++
这篇教程C++ FC_ASSERT函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中FC_ASSERT函数的典型用法代码示例。如果您正苦于以下问题:C++ FC_ASSERT函数的具体用法?C++ FC_ASSERT怎么用?C++ FC_ASSERT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了FC_ASSERT函数的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: scaled_precision

 static share_type scaled_precision( uint8_t precision ) {    FC_ASSERT( precision < 19 );    return scaled_precision_lut[ precision ]; }
开发者ID:clar,项目名称:graphene,代码行数:5,


示例2: ntp_error

fc::microseconds ntp_error(){  fc::optional<fc::time_point> current_ntp_time = ntp_time();  FC_ASSERT( current_ntp_time, "We don't have NTP time!" );  return *current_ntp_time - fc::time_point::now();}
开发者ID:BitMoneta,项目名称:bitshares,代码行数:6,


示例3: match_orders

            void match_orders( std::vector<signed_transaction>& matched,  asset::type quote, asset::type base )            { try {               ilog( "match orders.." );               auto bids = _market_db.get_bids( quote, base );               auto asks = _market_db.get_asks( quote, base );               wlog( "asks: ${asks}", ("asks",asks) );               wlog( "bids: ${bids}", ("bids",bids) );               fc::optional<trx_output>  ask_change;               fc::optional<trx_output>  bid_change;               fc::optional<trx_output>  cover_change;               address                   bid_payout_address;               fc::optional<asset>       bid_payout;               asset                                cover_collat;                      fc::optional<claim_by_cover_output>  cover_payout;               signed_transaction market_trx;               market_trx.timestamp = fc::time_point::now();               /** asks are sorted from low to high, so we start                * with the lowest ask, and check to see if there are                * any bids that are greaterthan or equal to the ask, if                * there are then either the full bid or full ask will be                * filled.  If the full bid is filled, then move on to the                * next bid, and save the leftover ask.  If the left over                * ask is filled, then move to the next ask.                *                * When there are no more pairs that can be matched, exit                * the loop and any partial payouts are made.                  */               auto ask_itr = asks.begin();               auto bid_itr = bids.rbegin();               while( ask_itr != asks.end() &&                      bid_itr != bids.rend() )               {                   trx_output working_ask;                  trx_output working_bid;                  if( ask_change ) {  working_ask = *ask_change; }                  else             {  working_ask = get_output( ask_itr->location );  }                  if( bid_change ) {  working_bid = *bid_change; }                  else             {  working_bid = get_output( bid_itr->location);   }                  claim_by_bid_output bid_claim = working_bid.as<claim_by_bid_output>();                  if( working_ask.claim_func == claim_by_long )                  {                     auto long_claim = working_ask.as<claim_by_long_output>();                     if( long_claim.ask_price > bid_claim.ask_price )                     {                        break; // exit the while loop, no more trades can occur                     }                     asset bid_amount = working_bid.get_amount() * bid_claim.ask_price;                     asset ask_amount = working_ask.get_amount() * long_claim.ask_price;                     FC_ASSERT( bid_amount.unit == ask_amount.unit );                     auto  trade_amount = std::min(bid_amount,ask_amount);                     ilog( "bid amount: ${b} @ ${bp}  ask amount: ${a} @ ${ap}", ("b",bid_amount)("a",ask_amount)("bp",bid_claim.ask_price)("ap",long_claim.ask_price) );                     asset bid_change_amount   = working_bid.get_amount();                     bid_change_amount        -= trade_amount * bid_claim.ask_price;                     ilog( "bid change.. ${c}", ("c",bid_change_amount) );                                          asset ask_change_amount   = working_ask.get_amount();                     ask_change_amount        -= trade_amount * long_claim.ask_price;                     ilog( "ask change.. ${c}", ("c",ask_change_amount) );                                           if( ask_change_amount != bid_change_amount  && ask_change_amount != asset(0,working_bid.unit) )                     {                       FC_ASSERT( !"At least one of the bid or ask should be completely filled", "",                                   ("ask_change_amount",ask_change_amount)("bid_change_amount",bid_change_amount) );                     }                                          bid_payout_address = bid_claim.pay_address;                     auto bid_payout_amount  = bid_amount - (bid_change_amount * bid_claim.ask_price);                     if( bid_payout ) { *bid_payout += bid_payout_amount; }                     else             { bid_payout   = bid_payout_amount; }                     if( cover_payout )                      {                         cover_payout->payoff_amount += trade_amount.get_rounded_amount();                        cover_collat                += (trade_amount * long_claim.ask_price)*2;                     }                     else                     {                        cover_payout                = claim_by_cover_output();                        cover_payout->owner         = long_claim.pay_address;                        cover_payout->payoff_unit   = trade_amount.unit;                        cover_payout->payoff_amount = trade_amount.get_rounded_amount();                        cover_collat                = (trade_amount * long_claim.ask_price)*2;                     }                     if( bid_change_amount != asset(0, working_bid.unit) )//.........这里部分代码省略.........
开发者ID:jiefangqian,项目名称:BitShares,代码行数:101,


示例4: FC_ASSERT

void committee_member_create_operation::validate()const{   FC_ASSERT( fee.amount >= 0 );   FC_ASSERT(url.size() < GRAPHENE_MAX_URL_LENGTH );}
开发者ID:0dayZh,项目名称:graphene,代码行数:5,


示例5: FC_ASSERT

    void domain_buy_operation::evaluate( transaction_evaluation_state& eval_state )    {        FC_ASSERT( is_valid_domain( this->domain_name ), "Trying to buy an invalid domain name" );        auto now = eval_state._current_state->now().sec_since_epoch();        auto odomain_rec = eval_state._current_state->get_domain_record( this->domain_name );        /* If it already exists and hasn't expired and you offered enough */        if( odomain_rec.valid()             && odomain_rec->get_true_state(now) == domain_record::in_sale            && this->price >= odomain_rec->price )        {            share_type paid_to_owner = 0;            for (auto op : eval_state.trx.operations)            {                if (op.type == operation_type_enum::deposit_op_type)                {                    auto deposit = op.as<deposit_operation>();                    if (deposit.condition.type == withdraw_condition_types::withdraw_signature_type)                    {                        auto condition = deposit.condition.as<withdraw_with_signature>();                        if (condition.owner == odomain_rec->owner)                        {                            paid_to_owner += deposit.amount;                        }                    }                }            }            FC_ASSERT( this->price == paid_to_owner );            FC_ASSERT( paid_to_owner >= odomain_rec->price, "Did not pay enough to previous owner" );            odomain_rec->state = domain_record::owned;            odomain_rec->owner = this->new_owner;            odomain_rec->last_update = eval_state._current_state->now().sec_since_epoch();            eval_state._current_state->store_domain_record( *odomain_rec );            return;        }        /* Domain does not exist or is not for sale or is too expensive, so this is an offer */        else        {            auto balance = eval_state._current_state->get_domain_offer(this->new_owner);            FC_ASSERT( !balance.valid(), "Trying to make an offer with an offer ID that already exists");            FC_ASSERT(this->price > 0, "Price must be greater than 0 when you offer" );            bool found_deposit = false;            for ( auto op : eval_state.trx.operations )            {                if (op.type == operation_type_enum::deposit_op_type)                {                    auto deposit = op.as<deposit_operation>();                    if( deposit.condition.type == withdraw_condition_types::withdraw_domain_offer_type )                    {                        auto condition = deposit.condition.as<bts::blockchain::withdraw_domain_offer>();                        FC_ASSERT( condition.domain_name == this->domain_name, "condition does not match offer op" );                        FC_ASSERT( condition.price == this->price, "condition does not match offer op" );                        FC_ASSERT( condition.owner == this->new_owner, "condition does not match offer op" );                        found_deposit = true;                    }                }            }            FC_ASSERT( found_deposit, "Did not find a deposit on this domain offer transaction" );            auto offer_key = offer_index_key();            offer_key.price = this->price;            offer_key.domain_name = this->domain_name;            offer_key.offer_address = this->new_owner;            offer_key.offer_time = eval_state._current_state->now().sec_since_epoch();            ulog( "about to store offer/n" );            eval_state._current_state->store_domain_offer( offer_key );        }    }
开发者ID:tmptest1,项目名称:keyid,代码行数:67,


示例6: FC_ASSERT

std::string asset::symbol_name() const {    auto a = (const char *)&symbol;    FC_ASSERT(a[7] == 0);    return &a[1];}
开发者ID:Rsteem,项目名称:steem,代码行数:5,


示例7: FC_ASSERT

 friend bool operator < ( const asset& a, const asset& b ) {    FC_ASSERT( a.symbol == b.symbol );    return std::tie(a.amount,a.symbol) < std::tie(b.amount,b.symbol); }
开发者ID:Bitcoinsulting,项目名称:steem,代码行数:5,


示例8: as

 WithdrawType as()const {    FC_ASSERT( type == WithdrawType::type, "", ("type",type)("WithdrawType",WithdrawType::type) );    return fc::raw::unpack<WithdrawType>(data); }
开发者ID:HackFisher,项目名称:bitshares_snapshot,代码行数:5,


示例9: FC_ASSERT

 optional<extended_private_key> wallet_db::get_master_key( const fc::sha512& password    )const {    FC_ASSERT( wallet_master_key );    return wallet_master_key->decrypt_key( password ); }
开发者ID:371061198,项目名称:bitshares_toolkit,代码行数:5,


示例10: validate

 void              validate()const {    FC_ASSERT( fee.amount >= 0 );    FC_ASSERT( amount.amount > 0 ); }
开发者ID:0dayZh,项目名称:graphene,代码行数:5,


示例11: as

 OperationType as()const {    FC_ASSERT( (operation_type_enum)type == OperationType::type, "", ("type",type)("OperationType",OperationType::type) );    return fc::raw::unpack<OperationType>(data); }
开发者ID:NewportHighlander,项目名称:PTS,代码行数:5,


示例12: validate

 void validate()const { FC_ASSERT( fee.amount >= 0 ); FC_ASSERT(new_listing < 0x4); }
开发者ID:hanxueming126,项目名称:bitshares-core,代码行数:1,


示例13: FC_ASSERT

price market_order::get_highest_cover_price()const{ try {  FC_ASSERT( type == cover_order );  return asset( state.balance, market_index.order_price.quote_asset_id ) / asset( *collateral );} FC_CAPTURE_AND_RETHROW() }
开发者ID:abitmore,项目名称:bitshares,代码行数:5,


示例14: FC_ASSERT

 fc::api<network_broadcast_api> login_api::network_broadcast()const {    FC_ASSERT(_network_broadcast_api);    return *_network_broadcast_api; }
开发者ID:wackou,项目名称:graphene,代码行数:5,


示例15: VERIFY_CORRECT_THREAD

    void message_oriented_connection_impl::read_loop()    {      VERIFY_CORRECT_THREAD();      const unsigned int BUFFER_SIZE = 16;      static_assert(BUFFER_SIZE >= sizeof(message_header), "insufficient buffer");      const int LEFTOVER = BUFFER_SIZE - sizeof(message_header);      _connected_time = fc::time_point::now();      fc::oexception exception_to_rethrow;      bool call_on_connection_closed = false;      try      {        message m;        while( true )        {          char buffer[BUFFER_SIZE];          _sock.read(buffer, BUFFER_SIZE);          _bytes_received += BUFFER_SIZE;          memcpy((char*)&m, buffer, sizeof(message_header));          FC_ASSERT( m.size <= MAX_MESSAGE_SIZE, "", ("m.size",m.size)("MAX_MESSAGE_SIZE",MAX_MESSAGE_SIZE) );          size_t remaining_bytes_with_padding = 16 * ((m.size - LEFTOVER + 15) / 16);          m.data.resize(LEFTOVER + remaining_bytes_with_padding); //give extra 16 bytes to allow for padding added in send call          std::copy(buffer + sizeof(message_header), buffer + sizeof(buffer), m.data.begin());          if (remaining_bytes_with_padding)          {            _sock.read(&m.data[LEFTOVER], remaining_bytes_with_padding);            _bytes_received += remaining_bytes_with_padding;          }          m.data.resize(m.size); // truncate off the padding bytes          _last_message_received_time = fc::time_point::now();          try          {            // message handling errors are warnings...            _delegate->on_message(_self, m);          }          /// Dedicated catches needed to distinguish from general fc::exception          catch ( const fc::canceled_exception& e ) { throw e; }          catch ( const fc::eof_exception& e ) { throw e; }          catch ( const fc::exception& e)          {            /// Here loop should be continued so exception should be just caught locally.            wlog( "message transmission failed ${er}", ("er", e.to_detail_string() ) );            throw;          }        }      }      catch ( const fc::canceled_exception& e )      {        wlog( "caught a canceled_exception in read_loop.  this should mean we're in the process of deleting this object already, so there's no need to notify the delegate: ${e}", ("e", e.to_detail_string() ) );        throw;      }      catch ( const fc::eof_exception& e )      {        wlog( "disconnected ${e}", ("e", e.to_detail_string() ) );        call_on_connection_closed = true;      }      catch ( const fc::exception& e )      {        elog( "disconnected ${er}", ("er", e.to_detail_string() ) );        call_on_connection_closed = true;        exception_to_rethrow = fc::unhandled_exception(FC_LOG_MESSAGE(warn, "disconnected: ${e}", ("e", e.to_detail_string())));      }      catch ( const std::exception& e )      {        elog( "disconnected ${er}", ("er", e.what() ) );        call_on_connection_closed = true;        exception_to_rethrow = fc::unhandled_exception(FC_LOG_MESSAGE(warn, "disconnected: ${e}", ("e", e.what())));      }      catch ( ... )      {        elog( "unexpected exception" );        call_on_connection_closed = true;        exception_to_rethrow = fc::unhandled_exception(FC_LOG_MESSAGE(warn, "disconnected: ${e}", ("e", fc::except_str())));      }      if (call_on_connection_closed)        _delegate->on_connection_closed(_self);      if (exception_to_rethrow)        throw *exception_to_rethrow;    }
开发者ID:NewportHighlander,项目名称:PTS,代码行数:87,


示例16: FC_ASSERT

   void chain_parameters::validate()const   {      current_fees->validate();      FC_ASSERT( reserve_percent_of_fee <= GRAPHENE_100_PERCENT );      FC_ASSERT( network_percent_of_fee <= GRAPHENE_100_PERCENT );      FC_ASSERT( lifetime_referrer_percent_of_fee <= GRAPHENE_100_PERCENT );      FC_ASSERT( network_percent_of_fee + lifetime_referrer_percent_of_fee <= GRAPHENE_100_PERCENT );      FC_ASSERT( block_interval >= GRAPHENE_MIN_BLOCK_INTERVAL );      FC_ASSERT( block_interval <= GRAPHENE_MAX_BLOCK_INTERVAL );      FC_ASSERT( block_interval > 0 );      FC_ASSERT( maintenance_interval > block_interval,                 "Maintenance interval must be longer than block interval" );      FC_ASSERT( maintenance_interval % block_interval == 0,                 "Maintenance interval must be a multiple of block interval" );      FC_ASSERT( maximum_transaction_size >= GRAPHENE_MIN_TRANSACTION_SIZE_LIMIT,                 "Transaction size limit is too low" );      FC_ASSERT( maximum_block_size >= GRAPHENE_MIN_BLOCK_SIZE_LIMIT,                 "Block size limit is too low" );      FC_ASSERT( maximum_time_until_expiration > block_interval,                 "Maximum transaction expiration time must be greater than a block interval" );      FC_ASSERT( maximum_proposal_lifetime - committee_proposal_review_period > block_interval,                 "Committee proposal review period must be less than the maximum proposal lifetime" );   }
开发者ID:hanxueming126,项目名称:bitshares-core,代码行数:24,


示例17: BN_bin2bn

 bigint::bigint( const std::vector<char>& bige ) {   n = BN_bin2bn( (const unsigned char*)bige.data(), bige.size(), NULL );   FC_ASSERT( n != nullptr ); }
开发者ID:FollowMyVote,项目名称:fc,代码行数:4,


示例18: FC_ASSERT

 asset& operator += ( const asset& o ) {    FC_ASSERT( asset_id == o.asset_id );    amount += o.amount;    return *this; }
开发者ID:NaturalCoder,项目名称:graphene,代码行数:6,


示例19: FC_ASSERT

 friend asset operator + ( const asset& a, const asset& b ) {    FC_ASSERT( a.asset_id == b.asset_id );    return asset( a.amount + b.amount, a.asset_id ); }
开发者ID:clar,项目名称:graphene,代码行数:5,



注:本文中的FC_ASSERT函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ FC_LPORT_DBG函数代码示例
C++ FCPPT_TEXT函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。