Mercurial > public > cpp-enigma
view enigma/enigma_types.h @ 11:da231533c5c7
To support hill climbing and fewer enigma machine constructor calls, the
enigma machine now uses shared_ptr instead of unique_ptr.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Fri, 29 Jun 2012 23:20:33 -0500 |
parents | 1459e74fda3f |
children |
line wrap: on
line source
#ifndef CPP_ENIGMA_ENIGMA_TYPES_H #define CPP_ENIGMA_ENIGMA_TYPES_H // Copyright (C) 2012 by Brian Neal. // This file is part of Cpp-Enigma, the Enigma Machine simulation. // Cpp-Enigma is released under the MIT License (see License.txt). // // enigma_types.h - This file contains common types used throughout Cpp-Enigma. #include <exception> #include <string> #include <array> namespace enigma { class enigma_error : public std::exception { public: explicit enigma_error(const std::string& what_arg) : what_arg(what_arg) {} virtual ~enigma_error() throw() {} virtual const char* what() const throw() { return what_arg.c_str(); } private: std::string what_arg; }; // Arrays of 26 items are very commonly used: typedef std::array<int, 26> alpha_int_array; typedef std::array<bool, 26> alpha_bool_array; } #endif