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

C++ ASSERT_MSG函数代码示例

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

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



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

示例1: LoadOffsets

/* stores the table of offsets for all records of the current file for
   faster access.  */
static void LoadOffsets(axxPacFD fd)
{
    MemPtr mp;

    /* assumption: there is just one file being read */
    ASSERT_MSG("AIM6", currFileDesc == -1);

    axxPacSeek(LibRef, fd, 76, SEEK_SET);
    axxPacRead(LibRef, fd, &nrec, 2);
    moff = MemHandleNew(nrec * 8L);
    ASSERT_MSG("AIM3", moff != 0);

    mp = MemHandleLock(moff);
    ASSERT_MSG("AIM4", mp != 0);

    axxPacSeek(LibRef, fd, 78, SEEK_SET);
    axxPacRead(LibRef, fd, mp, nrec * 8L);
    MemHandleUnlock(moff);
    currFileDesc = fd;
    nrec--;
}
开发者ID:TimofonicJunkRoom,项目名称:plucker,代码行数:23,代码来源:axxpacimp.c


示例2: ASSERT_MSG

void VertexLoader::Setup(const PipelineRegs& regs) {
    ASSERT_MSG(!is_setup, "VertexLoader is not intended to be setup more than once.");

    const auto& attribute_config = regs.vertex_attributes;
    num_total_attributes = attribute_config.GetNumTotalAttributes();

    boost::fill(vertex_attribute_sources, 0xdeadbeef);

    for (int i = 0; i < 16; i++) {
        vertex_attribute_is_default[i] = attribute_config.IsDefaultAttribute(i);
    }

    // Setup attribute data from loaders
    for (int loader = 0; loader < 12; ++loader) {
        const auto& loader_config = attribute_config.attribute_loaders[loader];

        u32 offset = 0;

        // TODO: What happens if a loader overwrites a previous one's data?
        for (unsigned component = 0; component < loader_config.component_count; ++component) {
            if (component >= 12) {
                LOG_ERROR(HW_GPU,
                          "Overflow in the vertex attribute loader %u trying to load component %u",
                          loader, component);
                continue;
            }

            u32 attribute_index = loader_config.GetComponent(component);
            if (attribute_index < 12) {
                offset = Common::AlignUp(offset,
                                         attribute_config.GetElementSizeInBytes(attribute_index));
                vertex_attribute_sources[attribute_index] = loader_config.data_offset + offset;
                vertex_attribute_strides[attribute_index] =
                    static_cast<u32>(loader_config.byte_count);
                vertex_attribute_formats[attribute_index] =
                    attribute_config.GetFormat(attribute_index);
                vertex_attribute_elements[attribute_index] =
                    attribute_config.GetNumElements(attribute_index);
                offset += attribute_config.GetStride(attribute_index);
            } else if (attribute_index < 16) {
                // Attribute ids 12, 13, 14 and 15 signify 4, 8, 12 and 16-byte paddings,
                // respectively
                offset = Common::AlignUp(offset, 4);
                offset += (attribute_index - 11) * 4;
            } else {
                UNREACHABLE(); // This is truly unreachable due to the number of bits for each
                               // component
            }
        }
    }

    is_setup = true;
}
开发者ID:FenrisulfrX,项目名称:citra,代码行数:53,代码来源:vertex_loader.cpp


示例3: ASSERT_MSG

void DX9VertexShader::setVec4( const char* paramName, const D3DXVECTOR4& vec )
{
   if ( m_activeConstantsTable )
   {
      D3DXHANDLE hConstant = m_activeConstantsTable->GetConstantByName( NULL, paramName );
      if ( hConstant )
      {
         HRESULT res = m_activeConstantsTable->SetVector( m_d3Device, hConstant, &vec );
         ASSERT_MSG( SUCCEEDED( res ), translateDxError( "setVec4", res ).c_str() );
      }
   }
}
开发者ID:chenwenbin928,项目名称:tamy,代码行数:12,代码来源:DX9VertexShader.cpp


示例4: ASSERT

const Quadtree<T,D>* Quadtree<T,D>::FindLeafNode(const vec<T,D>* p) const
{
	if(IsLeaf())
    {
        ASSERT(ContainsPoint(p));
        return this;
    }
    
    Orthant<D> orthant = GetOrthant(p);
    ASSERT_MSG(children[orthant] != NULL, "The point does not appear in a leaf node in the quadtree.\n");
    return children[orthant]->FindLeafNode(p);    
}
开发者ID:MelkorOJ,项目名称:wssd_cech,代码行数:12,代码来源:Quadtree.cpp


示例5: mtx_init

void mtx_init( Tmtx_ptr A, int nrows, int ncols )
{
	if( A->init )
		mtx_free( A );
	
	A->init = 1;
	A->nrows = nrows;
	A->ncols = ncols;
	A->dat = (double *)calloc( nrows*ncols, sizeof(double) );
	A->tau = NULL;		// This is only allocated by least squares routines
	ASSERT_MSG( A->dat!=NULL, "mtx_init() : unable calloc memory for dense matrix" );
}
开发者ID:jackd,项目名称:FVMPor,代码行数:12,代码来源:linalg_dense.c


示例6: ASSERT_MSG

Orthant<D> Quadtree<T,D>::GetOrthant(const vec<T,D>* p) const
{
    ASSERT_MSG(ContainsPoint(p), "The node does not contain the point for which we try to find the orthant.\n");

    Orthant<D> orthant;
    for(int d=0; d<D; ++d)
    {
        orthant.Set(d, minPoint[d] + (sideLength/T(2)) < (*p)[d]);
    }

    return orthant;
}
开发者ID:MelkorOJ,项目名称:wssd_cech,代码行数:12,代码来源:Quadtree.cpp


示例7: WriteProcessPipe

/**
 * DSP_DSP::WriteProcessPipe service function
 *  Inputs:
 *      1 : Pipe Number
 *      2 : Size
 *      3 : (size << 14) | 0x402
 *      4 : Buffer
 *  Outputs:
 *      0 : Return header
 *      1 : Result of function, 0 on success, otherwise error code
 */
static void WriteProcessPipe(Service::Interface* self) {
    u32* cmd_buff = Kernel::GetCommandBuffer();

    u32 pipe_index = cmd_buff[1];
    u32 size = cmd_buff[2];
    u32 buffer = cmd_buff[4];

    AudioCore::DspPipe pipe = static_cast<AudioCore::DspPipe>(pipe_index);

    if (IPC::StaticBufferDesc(size, 1) != cmd_buff[3]) {
        LOG_ERROR(Service_DSP,
                  "IPC static buffer descriptor failed validation (0x%X). pipe=%u, "
                  "size=0x%X, buffer=0x%08X",
                  cmd_buff[3], pipe_index, size, buffer);
        cmd_buff[0] = IPC::MakeHeader(0, 1, 0);
        cmd_buff[1] = IPC::ERR_INVALID_BUFFER_DESCRIPTOR.raw;
        return;
    }

    ASSERT_MSG(Memory::IsValidVirtualAddress(buffer),
               "Invalid Buffer: pipe={}, size={:#X}, buffer={:#010X}", pipe_index, size, buffer);

    std::vector<u8> message(size);
    for (u32 i = 0; i < size; i++) {
        message[i] = Memory::Read8(buffer + i);
    }

    // This behaviour was confirmed by RE.
    // The likely reason for this is that games tend to pass in garbage at these bytes
    // because they read random bytes off the stack.
    switch (pipe) {
    case AudioCore::DspPipe::Audio:
        ASSERT(message.size() >= 4);
        message[2] = 0;
        message[3] = 0;
        break;
    case AudioCore::DspPipe::Binary:
        ASSERT(message.size() >= 8);
        message[4] = 1;
        message[5] = 0;
        message[6] = 0;
        message[7] = 0;
        break;
    }

    Core::DSP().PipeWrite(pipe, message);

    cmd_buff[0] = IPC::MakeHeader(0xD, 1, 0);
    cmd_buff[1] = RESULT_SUCCESS.raw; // No error

    LOG_DEBUG(Service_DSP, "pipe=%u, size=0x%X, buffer=0x%08X", pipe_index, size, buffer);
}
开发者ID:DaMan69,项目名称:citra,代码行数:63,代码来源:dsp_dsp.cpp


示例8: RegisterEvent

EventType* RegisterEvent(const std::string& name, TimedCallback callback) {
    // check for existing type with same name.
    // we want event type names to remain unique so that we can use them for serialization.
    ASSERT_MSG(event_types.find(name) == event_types.end(),
               "CoreTiming Event \"{}\" is already registered. Events should only be registered "
               "during Init to avoid breaking save states.",
               name);

    auto info = event_types.emplace(name, EventType{callback, nullptr});
    EventType* event_type = &info.first->second;
    event_type->name = &info.first->first;
    return event_type;
}
开发者ID:DaMan69,项目名称:citra,代码行数:13,代码来源:core_timing.cpp


示例9: command_postfork

static void command_postfork(void *data) {
	struct lua_command_data *lcd = data;
	struct lua_State *L = lcd->L;
	ASSERT(L);
	// This would be called from within the lua_run_command, no need to allocate more stack
	if (lcd->postfork_callback) {
		int handler = push_err_handler(L);
		extract_registry_value(L, lcd->postfork_callback);
		int result = lua_pcall(L, 0, 0, handler);
		ASSERT_MSG(!result, "%s", interpreter_error_result(L));
	}
	// We don't worry about freeing memory here. We're going to exec just in a while.
}
开发者ID:CZ-NIC,项目名称:turris-updater,代码行数:13,代码来源:interpreter.c


示例10: CR_thread_start

int CR_thread_start( unsigned int n )
{
    nspawns = n;

    if ( m_state_get() == M_RESTART ) {
        ASSERT_MSG( restart_version >= 0, "Internal error" );
    }

#ifndef CR_FTB
    // This must be called before mpispawn are started
    // Do not move this to CR_Loop()
    if (USE_LINEAR_SSH) {
        if (!show_on) {
            int rv = create_connections();
            if ( rv != 0 ) {
                return -1;
            }
        }
    }
#endif

    struct timeval starting;
    gettimeofday(&starting, NULL);
    starting_time = last_ckpt = starting.tv_sec;

    // Check and set CR state
    CR_state_lock();
    ASSERT_MSG( cr_state == CR_INIT || cr_state == CR_STOPPED, "Internal Error\n");
    CR_state_transition_nolock( CR_INIT );
    CR_state_unlock();

    if (pthread_create(&cr_tid, NULL, CR_Loop, NULL) < 0) {
        PRINT_ERROR_ERRNO("pthread_create() failed", errno);
        cr_tid = 0;
        return -1;
    }

    return 0;
}
开发者ID:hpc,项目名称:mvapich2-cce,代码行数:39,代码来源:mpirun_ckpt.c


示例11: RecvDataIsReady

/**
 * DSP_DSP::RecvDataIsReady service function
 *      This function checks whether a DSP register is ready to be read.
 *  Inputs:
 *      1 : Register Number
 *  Outputs:
 *      1 : Result of function, 0 on success, otherwise error code
 *      2 : non-zero == ready
 *  Note:
 *      This function has only been observed being called with a register number of 0.
 */
static void RecvDataIsReady(Service::Interface* self) {
    u32* cmd_buff = Kernel::GetCommandBuffer();

    u32 register_number = cmd_buff[1];

    ASSERT_MSG(register_number == 0, "Unknown register_number {}", register_number);

    cmd_buff[0] = IPC::MakeHeader(0x2, 2, 0);
    cmd_buff[1] = RESULT_SUCCESS.raw;
    cmd_buff[2] = 1; // Ready to read

    LOG_DEBUG(Service_DSP, "register_number=%u", register_number);
}
开发者ID:DaMan69,项目名称:citra,代码行数:24,代码来源:dsp_dsp.cpp


示例12: kmalloc

void *kmalloc_pages(size_t npages)
{
    void *p;

    p = kmalloc(npages * PAGE_SIZE);
    if (!p)
        return NULL;

    /* check page alignment in debug kernels */
    ASSERT_MSG(!((addr_t)p % PAGE_SIZE), "allocated memory is not page aligned!\n");

    return p;
}
开发者ID:skarpenko,项目名称:phlox,代码行数:13,代码来源:heap.c


示例13: ASSERT_MSG

void Sound3D::assignChannel(SoundDevice& device)
{
   if (m_channel != NULL)
   {
      ASSERT_MSG( false, "The 3d sound already has a channel assigned");
      return;
   }

   m_channel = &(device.activateSound(m_sound));
   onChannelAssigned(*m_channel);
   m_channel->setLooped(m_looped);
   m_channel->play();
}
开发者ID:dabroz,项目名称:Tamy,代码行数:13,代码来源:Sound3D.cpp


示例14: get_type

 /**
  * Returns the type of the SArray (as set by 
  * \ref swriter<flexible_type>::set_type). If the type of the SArray was
  * not set, this returns \ref flex_type_enum::UNDEFINED, in which case
  * each row can be of arbitrary type.
  *
  * This function should only be used for sarray<flexible_type> and
  * will fail fatally otherwise.
  */
 flex_type_enum get_type() const {
   if (!std::is_same<T, flexible_type>::value) {
     ASSERT_MSG(false, 
                 "Use of get_type() in SArray which "
                 "does not contain flexible_types");
   }
   ASSERT_NE(reader, NULL);
   const index_file_information& index_info = reader->get_index_info();
   if (index_info.metadata.count("__type__")) {
     return flex_type_enum::UNDEFINED;
   }
   return flex_type_enum(std::stoi(index_info.metadata.at("__type__")));
 }
开发者ID:Bhushan1002,项目名称:SFrame,代码行数:22,代码来源:sarray_reader.hpp


示例15: ASSERT_MSG

/* create user process */
process_t *proc_create_user_process(const char *name, process_t *parent,
    vm_address_space_t *aspace, const char *args, uint role)
{
    process_t *proc;

    ASSERT_MSG(name != NULL && strlen(name) <= SYS_MAX_OS_NAME_LEN,
        "proc_create_user_process: user process name is invalid!\n");

    /* check args */
    if(aspace == NULL || role > PROCESS_ROLES_COUNT)
        return NULL;

    /* create process struct */
    proc = create_process_common(name, args);
    if(!proc)
        return INVALID_PROCESSID;

    /* init struct fields */
    proc->aspace = vm_inc_aspace_refcnt(aspace);
    if(!proc->aspace)
        goto error_exit;
    if(parent) {
        proc->parent = proc_inc_refcnt(parent);
        if(!proc->parent)
            goto error_exit;
    }
    proc->aid = proc->aspace->id;
    proc->process_role = role;
    proc->def_prio = process_roles_props[proc->process_role].def_prio;
    proc->def_sched_policy.raw =
        process_roles_props[proc->process_role].def_sched_policy.raw;
    atomic_set((atomic_t*)&proc->ref_count, 1); /* already has one ref owned by caller */

    /* init arch-dependend part */
    if(arch_init_process_struct(proc) != NO_ERROR)
        goto error_exit;

    /* add to processes list */
    put_process_to_list(proc);

    return proc; /* return to caller */

/* exit on errors */
error_exit:
    if(proc->aspace) vm_put_aspace(proc->aspace);
    if(proc->parent) proc_put_process(proc->parent);

    destroy_process_common(proc);

    return NULL;
}
开发者ID:skarpenko,项目名称:phlox,代码行数:52,代码来源:process.c


示例16: QString

void MainEditorPanel::saveLayout( QSettings& outSettings )
{
   char tmpEditorGroupStr[32];

   outSettings.beginGroup( "MainEditorPanel/activeEditors" );

   // first - serialize the active project's path, if there's one
   Project* activeProject = TamyEditor::getInstance().getActiveProject();
   if ( activeProject )
   {
      FilePath projectPath = activeProject->getFilePath();
      outSettings.setValue( "activeProjectPath", QString( projectPath.c_str() ) );
   }
   
   // if there's an active project, serialize the active editors ( editors may work only in the project scope )
   if ( activeProject )
   {
      std::vector< ResourceEditor* > editors;
      std::vector< TabLocation > tabsLocations;
      collectEditors( editors, &tabsLocations );

      uint count = editors.size();
      outSettings.setValue( "editorsCount", count );
      for ( uint i = 0; i < count; ++i )
      {
         ResourceEditor* editor = editors[i];

         // create a new group for each editor
         sprintf( tmpEditorGroupStr, "editor_%d", i );
         outSettings.beginGroup( tmpEditorGroupStr );
         {
            // save the layout data
            outSettings.setValue( "internal", tabsLocations[i].m_internal );
            if ( tabsLocations[i].m_internal == false )
            {
               QWidget* parentWidget = editor->parentWidget();
               ASSERT_MSG( dynamic_cast< QDockWidget* >( parentWidget ), "A detached ResourceEditor is expected to be embedded in a QDockWidget" );

               QDockWidget* parentDockWidget = static_cast< QDockWidget* >( parentWidget );
               Qt::DockWidgetArea dockArea = m_mainWindow->dockWidgetArea( parentDockWidget );
               outSettings.setValue( "dockArea", (int)dockArea );
            }

            outSettings.setValue( "path", editor->getLabel() );
            outSettings.setValue( "icon", editor->getIcon().name() );
         }
         outSettings.endGroup();
      }
   }
   outSettings.endGroup();
}
开发者ID:chenwenbin928,项目名称:tamy,代码行数:51,代码来源:MainEditorPanel.cpp


示例17: ASSERT

void SceneGraph::AddNode(ISceneNode* pNode)
{
	ASSERT(pNode);
	ASSERT_MSG(!pNode->mRemoveNodePostUpdate, "Probably got scheduled for remove then added in same frame");

	//@LAME: Because we multiply inherit ISceneNode and IPhysical, we need to do this here
	if (IPhysical* pPhysical = DynamicCast<IPhysical*>(pNode))
	{
		mPhysicalList.push_back(pPhysical);
	}

	mSceneNodeList.push_back(pNode);
	pNode->OnAddToScene();
}
开发者ID:amaiorano,项目名称:ZeldaDS,代码行数:14,代码来源:SceneGraph.cpp


示例18: GetHomeDirectory

/**
 * @return The user’s home directory on POSIX systems
 */
static const std::string& GetHomeDirectory() {
    static std::string home_path;
    if (home_path.empty()) {
        const char* envvar = getenv("HOME");
        if (envvar) {
            home_path = envvar;
        } else {
            auto pw = getpwuid(getuid());
            ASSERT_MSG(pw, "$HOME isn’t defined, and the current user can’t be found in /etc/passwd.");
            home_path = pw->pw_dir;
        }
    }
    return home_path;
}
开发者ID:Glought,项目名称:citra,代码行数:17,代码来源:file_util.cpp


示例19: MDLSetMaterial

/////////////////////////////////////
// Name:	MDLSetMaterial
// Purpose:	sets/change model's
//			texture within material
//			index
// Output:	model's texture change
// Return:	RETCODE_SUCCESS if success
/////////////////////////////////////
PUBLIC RETCODE MDLSetMaterial(hMDL model, int materialInd, const GFXMATERIAL &material)
{
	//allocate materials if there is none
	//set it automatically to one
	if(model->numMaterial == 0)
	{
		model->numMaterial = 1;
		model->materials = (GFXMATERIAL*)GFX_MALLOC(sizeof(GFXMATERIAL)*model->numMaterial);
		if(!model->materials)
		{ ASSERT_MSG(0, "Unable to allocate model materials", "Error in MDLSetMaterial"); return RETCODE_FAILURE; }

		memcpy(&model->materials[0], &material, sizeof(GFXMATERIAL));
	}
	else
	{
		if(materialInd >= model->numMaterial)
		{ ASSERT_MSG(0, "Bad material index", "Error in MDLSetMaterial"); return RETCODE_FAILURE; }

		memcpy(&model->materials[materialInd], &material, sizeof(GFXMATERIAL));
	}

	return RETCODE_SUCCESS;
}
开发者ID:ddionisio,项目名称:TaTaMahatta,代码行数:31,代码来源:GFX_Model.cpp


示例20: sizeof

    template <typename F> void GpuFFTPlanCl<F>::doExecute (const cl::CommandQueue& queue, const cl::Buffer& input, csize_t inputOffset, const cl::Buffer& output, csize_t outputOffset, bool doForward) const {
      if (supportNonZeroOffsets) {
        if (inputOffset != 0 || outputOffset != 0) {
          queue.enqueueCopyBuffer (input, tmp.getDataWritable (), (inputOffset * sizeof (std::complex<F>)) (), 0, (csize_t (sizeof (std::complex<F>)) * this->batchSize ()).value ());
          doExecute (queue, tmp.getDataWritable (), 0, tmp.getDataWritable (), 0, doForward);
          queue.enqueueCopyBuffer (tmp.getData (), output, 0, (outputOffset * sizeof (std::complex<F>)) (), (csize_t (sizeof (std::complex<F>)) * this->batchSize ()).value ());
          return;
        }
      } else {
        ASSERT_MSG (inputOffset == 0, "not implemented");
        ASSERT_MSG (outputOffset == 0, "not implemented");
      }

      if (this->size () == 0)
        return;
      if (this->size () == 1) {
        if (input () != output ())
          queue.enqueueCopyBuffer (input, output, 0, 0, (csize_t (sizeof (std::complex<F>)) * this->batchCount ()).value ());
        return;
      }

      cl::detail::errHandler (VAL(ExecuteInterleaved) (queue (), static_cast<TY(Plan)> (plan), Core::checked_cast<int> (this->batchCount ()), doForward ? VAL(Forward) : VAL(Inverse), input (), output (), 0, NULL, NULL), VAL(ExecuteInterleavedStr));
    }
开发者ID:steffen-kiess,项目名称:dda,代码行数:23,代码来源:GpuFFTPlanCl.cpp



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
C++ ASSERT_ND函数代码示例发布时间:2022-05-30
下一篇:
C++ ASSERT_MESSAGE函数代码示例发布时间: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