コード例 #1
0
ファイル: inst_st.c プロジェクト: iosypenk/Corewar
void		st_inst(t_core *core, t_proc *proc, int inst)
{
	unsigned char	arg;
	unsigned char	codage;
	unsigned int	adr;
	unsigned int	reg_nb;

	if (!(add_cd_check_valid(core, proc, inst)))
		return ;
	codage = core->map[(proc->pc + 1) % MEM_SIZE];
	reg_nb = fit_reg(read_arg(core->map, proc->pc, inst, 1));
	arg = what_arg(codage, 2);
	if (arg == C_IND)
	{
		adr = pc_pos(proc->pc + read_arg(core->map, proc->pc, inst, 2));
		write_to_map(core->map, proc->reg[reg_nb], adr);
		core->vis_flag == 1 ? replace_field(adr, proc->colour_nbr, core) : 0;
	}
	else if (arg == C_REG)
		write_to_reg(proc->reg[reg_nb],
					read_arg(core->map, proc->pc, inst, 2), proc);
	proc->prev_pc = proc->pc;
	proc->pc = pc_pos(proc->pc + inst_size(inst, codage));
	proc->cd = -1;
}
コード例 #2
0
int main()
{
    {
        std::string what_arg("io test message");
        std::ios_base::failure se(what_arg, make_error_code(std::errc::is_a_directory));
        assert(se.code() == std::make_error_code(std::errc::is_a_directory));
        std::string what_message(se.what());
        assert(what_message.find(what_arg) != std::string::npos);
        assert(what_message.find("Is a directory") != std::string::npos);
    }
    {
        std::string what_arg("io test message");
        std::ios_base::failure se(what_arg);
        assert(se.code() == std::make_error_code(std::io_errc::stream));
        std::string what_message(se.what());
        assert(what_message.find(what_arg) != std::string::npos);
        assert(what_message.find(std::iostream_category().message(static_cast<int>
            (std::io_errc::stream))) != std::string::npos);
    }
}
int main(int, char**)
{
    std::string what_arg("test message");
    std::system_error se(make_error_code(std::errc::not_a_directory), what_arg.c_str());
    assert(se.code() == std::make_error_code(std::errc::not_a_directory));
    std::string what_message(se.what());
    assert(what_message.find(what_arg) != std::string::npos);
    assert(what_message.find("Not a directory") != std::string::npos);

  return 0;
}