• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ check_valid函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: g_clear_stack

/* Save more of the C stack away, up to 'target_stop'.
 */
static void g_clear_stack(struct stacklet_s *g_target,
                          struct stacklet_thread_s *thrd)
{
    struct stacklet_s *current = thrd->g_stack_chain_head;
    char *target_stop = g_target->stack_stop;
    check_valid(g_target);

    /* save and unlink stacklets that are completely within
       the area to clear. */
    while (current != NULL && current->stack_stop <= target_stop) {
        struct stacklet_s *prev = current->stack_prev;
        check_valid(current);
        current->stack_prev = NULL;
        if (current != g_target) {
            /* don't bother saving away g_target, because
               it would be immediately restored */
            g_save(current, current->stack_stop
#ifdef DEBUG_DUMP
                   , 1
#endif
                   );
        }
        current = prev;
    }

    /* save a partial stack */
    if (current != NULL && current->stack_start < target_stop)
        g_save(current, target_stop
#ifdef DEBUG_DUMP
               , 1
#endif
               );

    thrd->g_stack_chain_head = current;
}
开发者ID:saghul,项目名称:python-fibers,代码行数:37,代码来源:stacklet.c


示例2: shrink_test

static void shrink_test(void) {
  gpr_log(GPR_INFO, "shrink_test");

  grpc_timer_heap pq;
  size_t i;
  size_t expected_size;

  /* A large random number to allow for multiple shrinkages, at least 512. */
  const size_t num_elements = (size_t)rand() % 2000 + 512;

  grpc_timer_heap_init(&pq);

  /* Create a priority queue with many elements.  Make sure the Size() is
     correct. */
  for (i = 0; i < num_elements; ++i) {
    GPR_ASSERT(i == pq.timer_count);
    grpc_timer_heap_add(&pq, create_test_elements(1));
  }
  GPR_ASSERT(num_elements == pq.timer_count);

  /* Remove elements until the Size is 1/4 the original size. */
  while (pq.timer_count > num_elements / 4) {
    grpc_timer *const te = pq.timers[pq.timer_count - 1];
    grpc_timer_heap_remove(&pq, te);
    gpr_free(te);
  }
  GPR_ASSERT(num_elements / 4 == pq.timer_count);

  /* Expect that Capacity is in the right range:
     Size * 2 <= Capacity <= Size * 4 */
  GPR_ASSERT(pq.timer_count * 2 <= pq.timer_capacity);
  GPR_ASSERT(pq.timer_capacity <= pq.timer_count * 4);
  check_valid(&pq);

  /* Remove the rest of the elements.  Check that the Capacity is not more than
     4 times the Size and not less than 2 times, but never goes below 16. */
  expected_size = pq.timer_count;
  while (pq.timer_count > 0) {
    const size_t which = (size_t)rand() % pq.timer_count;
    grpc_timer *te = pq.timers[which];
    grpc_timer_heap_remove(&pq, te);
    gpr_free(te);
    expected_size--;
    GPR_ASSERT(expected_size == pq.timer_count);
    GPR_ASSERT(pq.timer_count * 2 <= pq.timer_capacity);
    if (pq.timer_count >= 8) {
      GPR_ASSERT(pq.timer_capacity <= pq.timer_count * 4);
    } else {
      GPR_ASSERT(16 <= pq.timer_capacity);
    }
    check_valid(&pq);
  }

  GPR_ASSERT(0 == pq.timer_count);
  GPR_ASSERT(pq.timer_capacity >= 16 && pq.timer_capacity < 32);

  grpc_timer_heap_destroy(&pq);
}
开发者ID:aaronjheng,项目名称:grpc,代码行数:58,代码来源:timer_heap_test.c


示例3: test1

static void test1(void) {
  grpc_alarm_heap pq;
  const int num_test_elements = 200;
  const int num_test_operations = 10000;
  int i;
  grpc_alarm *test_elements = create_test_elements(num_test_elements);
  gpr_uint8 *inpq = gpr_malloc(num_test_elements);

  grpc_alarm_heap_init(&pq);
  memset(inpq, 0, num_test_elements);
  GPR_ASSERT(grpc_alarm_heap_is_empty(&pq));
  check_valid(&pq);
  for (i = 0; i < num_test_elements; ++i) {
    GPR_ASSERT(!contains(&pq, &test_elements[i]));
    grpc_alarm_heap_add(&pq, &test_elements[i]);
    check_valid(&pq);
    GPR_ASSERT(contains(&pq, &test_elements[i]));
    inpq[i] = 1;
    check_pq_top(test_elements, &pq, inpq, num_test_elements);
  }
  for (i = 0; i < num_test_elements; ++i) {
    /* Test that check still succeeds even for element that wasn't just
       inserted. */
    GPR_ASSERT(contains(&pq, &test_elements[i]));
  }

  GPR_ASSERT(pq.alarm_count == num_test_elements);

  check_pq_top(test_elements, &pq, inpq, num_test_elements);

  for (i = 0; i < num_test_operations; ++i) {
    int elem_num = rand() % num_test_elements;
    grpc_alarm *el = &test_elements[elem_num];
    if (!inpq[elem_num]) { /* not in pq */
      GPR_ASSERT(!contains(&pq, el));
      el->deadline = random_deadline();
      grpc_alarm_heap_add(&pq, el);
      GPR_ASSERT(contains(&pq, el));
      inpq[elem_num] = 1;
      check_pq_top(test_elements, &pq, inpq, num_test_elements);
      check_valid(&pq);
    } else {
      GPR_ASSERT(contains(&pq, el));
      grpc_alarm_heap_remove(&pq, el);
      GPR_ASSERT(!contains(&pq, el));
      inpq[elem_num] = 0;
      check_pq_top(test_elements, &pq, inpq, num_test_elements);
      check_valid(&pq);
    }
  }

  grpc_alarm_heap_destroy(&pq);
  gpr_free(test_elements);
  gpr_free(inpq);
}
开发者ID:Abioy,项目名称:kythe,代码行数:55,代码来源:alarm_heap_test.c


示例4: check_valid

 bool check_valid(TreeNode* root, long long min_val,
                 long long max_val) {
     if (!root) {
         return true;
     }
     if (root->val <= min_val || root->val >= max_val) {
         return false;
     }
     return check_valid(root->left, min_val, root->val) &&
             check_valid(root->right, root->val, max_val);
 }
开发者ID:yvxiang,项目名称:leetcode-me,代码行数:11,代码来源:ValidateBinarySearchTree.cpp


示例5: solve

int solve(t_pos *pos) {
  if (check_valid(pos)) {
    return solve_step(pos);
  } else {
    return IMPOSSIBLE;
  }
}
开发者ID:slowfrog,项目名称:hexiom,代码行数:7,代码来源:hexiom.c


示例6: check_valid

void dake::gl::shader::load(const char *file)
{
    check_valid();

    FILE *fp = fopen(dake::gl::find_resource_filename(file).c_str(), "rb");
    if (!fp) {
        throw std::invalid_argument("Could not open the given shader file");
    }

    name = std::string(file);

    fseek(fp, 0, SEEK_END);
    size_t len = ftell(fp);
    rewind(fp);

    char *src = new char[len + 1];
    if (fread(src, 1, len, fp) < len) {
        const char *err = strerror(errno);
        fclose(fp);
        delete[] src;
        throw std::runtime_error("Failed to read shader code from " + name
                                 + ": " + err);
    }
    src[len] = 0;

    fclose(fp);

    glShaderSource(id, 1, const_cast<const GLchar **>(&src), nullptr);
    delete[] src;
}
开发者ID:XanClic,项目名称:dake,代码行数:30,代码来源:shader.cpp


示例7: sudoki_bi

int		sudoki_bi()
{
  char		***tab;
  t_list	*list;
  t_present	*present;
  int		i;

  if ((tab = get_all_tab()) == NULL)
    return (-1);
  i = -1;
  while (++i < my_tablen(tab))
    {
      if ((present = get_present(tab[i])) == NULL ||
	  (list = get_list(tab[i])) == NULL)
	return (-1);
      filler(tab[i], list, present);
      if (check_valid(tab[i]) == 1)
        error_aff_tab();
      else
        aff_table(tab[i]);
      if (i < (my_tablen(tab) - 1))
        write(1, "####################\n", 21);
      free_function_bis(list, present);
    }
  free_function(tab);
  return (0);
}
开发者ID:veyssib,项目名称:sudoki-bi_veyssi_b,代码行数:27,代码来源:sudoki_bi.c


示例8: updatePosition

void updatePosition(world_description_t *aWorld, int theAction){
	/* When the move would result in hitting an obstacles, the agent simply doesn't move */
	int newRow = aWorld->agentRow;
	int newCol = aWorld->agentCol;

	
	if (theAction == 0){/*move down*/
		newCol = aWorld->agentCol - 1;
	}
	if (theAction == 1){ /*move up*/
		newCol = aWorld->agentCol + 1;
	}
	if (theAction == 2){/*move left*/
		newRow = aWorld->agentRow - 1;
	}
	if (theAction == 3){/*move right*/
		newRow = aWorld->agentRow + 1;
	}


	/*Check if new position is out of bounds or inside an obstacle */
	if(check_valid(aWorld,newRow,newCol)){
   		aWorld->agentRow = newRow;
   		aWorld->agentCol = newCol;
	}
}
开发者ID:10sun,项目名称:DRL-AI,代码行数:26,代码来源:SampleMinesEnvironment.c


示例9: test_specific

static void test_specific(PeriodType pt, guint16 mult,
                          GDateMonth sm, GDateDay sd, GDateYear sy,
                          GDateMonth rm, GDateDay rd, GDateYear ry,
                          GDateMonth nm, GDateDay nd, GDateYear ny)
{
    GDate start;
    GDate ref, next, true_next;
    Recurrence r;

    g_date_set_dmy(&start, sd, sm, sy);
    g_date_set_dmy(&ref, rd, rm, ry);
    g_date_set_dmy(&true_next, nd, nm, ny);


    recurrenceSet(&r, mult, pt, &start, WEEKEND_ADJ_NONE);
    recurrenceNextInstance(&r, &ref, &next);

    check_valid(&next, &ref, &start, mult, pt, WEEKEND_ADJ_NONE);
    if (!test_equal(&next, &true_next))
    {
        gchar s1[21], s2[21], s3[21];
        g_date_strftime(s1, 20, "%x", &start);
        g_date_strftime(s2, 20, "%x", &ref);
        g_date_strftime(s3, 20, "%x", &true_next);
        printf("pt = %d; mult = %d; start = %s; ref = %s; true_next = %s\n",
               pt, mult, s1, s2, s3);
    }
}
开发者ID:573,项目名称:gnucash,代码行数:28,代码来源:test-recurrence.c


示例10: rel_demux

/* This function only gets called when the process is running as a
 * server and must handle connections from multiple clients.  You have
 * to look up the rel_t structure based on the address in the
 * sockaddr_storage passed in.  If this is a new connection (sequence
 * number 1), you will need to allocate a new conn_t using rel_create
 * ().  (Pass rel_create NULL for the conn_t, so it will know to
 * allocate a new connection.)
 */
void
rel_demux (const struct config_common *cc,
	   const struct sockaddr_storage *ss,
	   packet_t *pkt, size_t len)
{
  if (!check_valid(pkt, len)) return;

  rel_t * r = rel_list;
  
  while (r) {
    if (r->ss && addreq(ss, r->ss)) {
      break;
    }
    r = r->next; 
  }

  if (!r) {
    if (ntohl(pkt->seqno) == 1) {
      r = rel_create(NULL, ss, cc);
    } else {
      return;
    }
  }

  rel_recvpkt(r, pkt, len);
}
开发者ID:nyn531,项目名称:cs144,代码行数:34,代码来源:reliable.c


示例11: check_valid

config::const_attr_itors config::attribute_range() const
{
	check_valid();

	return const_attr_itors(const_attribute_iterator(values.begin()),
	                        const_attribute_iterator(values.end()));
}
开发者ID:PoignardAzur,项目名称:wesnoth,代码行数:7,代码来源:config.cpp


示例12: g_initialstub

STATIC_NOINLINE
void g_initialstub(struct stacklet_thread_s *thrd,
                   stacklet_run_fn run, void *run_arg)
{
    struct stacklet_s *result;

    /* The following call returns twice! */
    result = (struct stacklet_s *) _stacklet_switchstack(g_initial_save_state,
                                                         g_restore_state,
                                                         thrd);
    if (result == NULL && thrd->g_source != NULL) {
        /* First time it returns.  Only g_initial_save_state() has run
           and has created 'g_source'.  Call run(). */
        thrd->g_current_stack_stop = thrd->g_current_stack_marker;
        result = run(thrd->g_source, run_arg);

        /* Then switch to 'result'. */
        check_valid(result);
        thrd->g_target = result;
        _stacklet_switchstack(g_destroy_state, g_restore_state, thrd);

        _check_failed("we should not return here");
        abort();
    }
    /* The second time it returns. */
}
开发者ID:saghul,项目名称:python-fibers,代码行数:26,代码来源:stacklet.c


示例13: my_getnbr

int		my_getnbr(const char *str)
{
  char		sign;
  unsigned int	i;
  int		length;
  int		result;
  unsigned char	overflow;

  sign = '+';
  i = 0;
  length = my_strlen(str);
  result = 0;
  overflow = 0;
  while (i < length && check_valid(str[i]) && !overflow)
    {
      if (str[i] == '+' || str[i] == '-')
	{
	  add_sign(&sign, str[i]);
	}
      else
	{
	  overflow = update_result(&result, str[i], sign);
	}
      i = i + 1;
    }
  return (result);
}
开发者ID:Schlipak,项目名称:PSU_2015_minishell1,代码行数:27,代码来源:my_getnbr.c


示例14: get_neighbors

void get_neighbors(const int idx, 
				   const int imgHeight, const int imgWidth,
			       int *p_neighbors, int *pnum_neighbors)
{
	int pn_idx;
	int nb_row_idx, nb_col_idx;
	int row_idx, col_idx;
	pixel2idx(idx, imgHeight, &row_idx, &col_idx);
	(*pnum_neighbors) = 0;
	int row_delta, col_delta;
	for(row_delta =-1; row_delta<=1; row_delta++)
	{
		for(col_delta=-1; col_delta<=1; col_delta++)
		{
			nb_row_idx = row_idx+row_delta;
			nb_col_idx = col_idx+col_delta;
			if(check_valid(nb_row_idx, nb_col_idx,
				           row_idx, col_idx,
						   imgHeight, imgWidth))
			{
				idx2pixel(nb_row_idx, nb_col_idx, imgHeight, &pn_idx);
				p_neighbors[(*pnum_neighbors)] = pn_idx;
				(*pnum_neighbors)++;
			}
		}
	}
}
开发者ID:shengshuyang,项目名称:WindowsProjects,代码行数:27,代码来源:c_RegionGrowing.cpp


示例15: check_valid

void config::append_children(const config &cfg)
{
	check_valid(cfg);

	BOOST_FOREACH(const any_child &value, cfg.all_children_range()) {
		add_child(value.key, value.cfg);
	}
}
开发者ID:Coffee--,项目名称:wesnoth-old,代码行数:8,代码来源:config.cpp


示例16: check_valid

void config::append_children(const config &cfg, const std::string& key)
{
	check_valid(cfg);

	BOOST_FOREACH(const config &value, cfg.child_range(key)) {
		add_child(key, value);
	}
}
开发者ID:niegenug,项目名称:wesnoth,代码行数:8,代码来源:config.cpp



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ checked函数代码示例发布时间:2022-05-30
下一篇:
C++ check_unshare_flags函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap