72 throw std::invalid_argument(
"Type error");
89 T
at(
size_t i )
const {
97 const typename std::remove_pointer< T >::type*
data()
const {
98 using Tp =
const typename std::remove_pointer< T >::type*;
145template<
typename T >
172 template<
typename U >
178 for(
size_t i = 0; i <
data.size(); ++i )
179 target[ i ] = T(
data[ i ] );
185 std::vector<T> vector;
186 vector.assign(ptr, ptr + this->
size());
194 throw std::invalid_argument(
"fread kw failed - EOF?");
196 return EclKW( c_ptr );
204 const std::vector< const char* >&
data ) :
207 auto* ptr = this->
get();
208 for(
size_t i = 0; i <
data.size(); ++i ) {
209 if (strlen(
data[i]) > 8)
210 throw std::range_error(
"Strings must be maximum 8 characters long");
217 const std::vector< std::string >&
data ) :
220 auto* ptr = this->
get();
221 for(
size_t i = 0; i <
data.size(); ++i ) {
223 throw std::range_error(
"Strings must be maximum 8 characters long");
232 const std::vector< const char* >&
data ) :
235 auto* ptr = this->
get();
236 for(
size_t i = 0; i <
data.size(); ++i) {
237 if (strlen(
data[i]) > 8)
238 throw std::range_error(
"Strings must be maximum 8 characters long");
247 for (
size_t i = 0; i <
data.size(); i++)
254 std::vector<std::string> strings;
255 auto* ptr = this->
get();
256 for(
size_t i = 0; i < this->size(); ++i ) {
258 s8.erase(s8.find_last_not_of(
' ')+1);
259 strings.push_back( s8 );
const char *const string
Definition: cJSON.h:170
const char * name() const
Definition: EclKW.hpp:77
ecl_kw_type * get() const
Definition: EclKW.hpp:102
const std::remove_pointer< T >::type * data() const
Definition: EclKW.hpp:97
T & operator[](size_t i)
Definition: EclKW.hpp:93
ecl_kw_type * m_kw
Definition: EclKW.hpp:111
T at(size_t i) const
Definition: EclKW.hpp:89
void fwrite(FortIO &fortio) const
Definition: EclKW.hpp:85
EclKW_ref(ecl_kw_type *kw)
Definition: EclKW.hpp:70
void resize(size_t new_size)
Definition: EclKW.hpp:106
EclKW_ref() noexcept=default
size_t size() const
Definition: EclKW.hpp:81
Definition: EclKW.hpp:146
~EclKW()
Definition: EclKW.hpp:158
std::vector< T > data() const
Definition: EclKW.hpp:183
static EclKW load(FortIO &fortio)
Definition: EclKW.hpp:190
EclKW(const std::string &kw, const std::vector< U > &data)
Definition: EclKW.hpp:173
EclKW(const std::string &kw, const std::vector< T > &data)
Definition: EclKW.hpp:166
EclKW(const EclKW &)=delete
EclKW(EclKW &&rhs)
Definition: EclKW.hpp:154
EclKW(const std::string &kw, int size_)
Definition: EclKW.hpp:162
Definition: FortIO.hpp:36
fortio_type * get() const
void ecl_kw_set_memcpy_data(ecl_kw_type *, const void *)
ecl_data_type ecl_kw_get_data_type(const ecl_kw_type *)
int ecl_kw_get_size(const ecl_kw_type *)
void ecl_kw_iset_string8(ecl_kw_type *ecl_kw, int index, const char *s8)
void ecl_kw_iset_bool(ecl_kw_type *ecl_kw, int i, bool bool_value)
ecl_kw_type * ecl_kw_fread_alloc(fortio_type *)
bool ecl_kw_fwrite(const ecl_kw_type *, fortio_type *)
void ecl_kw_free(ecl_kw_type *)
void * ecl_kw_iget_ptr(const ecl_kw_type *, int)
void ecl_kw_resize(ecl_kw_type *ecl_kw, int new_size)
void * ecl_kw_get_ptr(const ecl_kw_type *ecl_kw)
ecl_kw_type * ecl_kw_alloc(const char *header, int size, ecl_data_type)
struct ecl_kw_struct ecl_kw_type
Definition: ecl_kw.hpp:39
const char * ecl_kw_iget_char_ptr(const ecl_kw_type *ecl_kw, int i)
const char * ecl_kw_get_header(const ecl_kw_type *ecl_kw)
bool ecl_kw_iget_bool(const ecl_kw_type *ecl_kw, int i)
ecl_type_enum ecl_type_get_type(const ecl_data_type)
#define ECL_MESS
Definition: ecl_type.hpp:96
ecl_type_enum
Definition: ecl_type.hpp:44
@ ECL_FLOAT_TYPE
Definition: ecl_type.hpp:46
@ ECL_INT_TYPE
Definition: ecl_type.hpp:48
@ ECL_CHAR_TYPE
Definition: ecl_type.hpp:45
@ ECL_BOOL_TYPE
Definition: ecl_type.hpp:49
@ ECL_DOUBLE_TYPE
Definition: ecl_type.hpp:47
ecl_data_type ecl_type_create_from_type(const ecl_type_enum)
char bool
Definition: msvc_stdbool.h:17
Definition: EclFilename.hpp:25
void write_kw(FortIO &fortio, const std::string &kw, const std::vector< T > &data)
Definition: EclKW.hpp:268
void write_mess(FortIO &fortio, const std::string &kw)
Definition: EclKW.hpp:276
function get(const std::string &func, double alpha, double beta)