Inicialização do membro de estrutura constante do C ++
Eu tenho uma constantestruct timespec
membro da minha turma. Como devo inicializá-lo?
A única ideia maluca que tenho é derivar minha própriatimespec
e dar um construtor.
Muito obrigado!
#include <iostream>
class Foo
{
private:
const timespec bar;
public:
Foo ( void ) : bar ( 1 , 1 )
{
}
};
int main() {
Foo foo;
return 0;
}
Compilação concluída com erros: source.cpp: no construtor 'Foo :: Foo ()': source.cpp: 9: 36: erro: nenhuma função correspondente para chamar 'timespec :: timespec (int, int)' source.cpp : 9: 36: note: os candidatos são: No arquivo incluído de sched.h: 34: 0, de pthread.h: 25, de /usr/lib/gcc/i686-pc-linux-gnu/4.7.2/. ./../../../include/c++/4.7.2/i686-pc-linux-gnu/bits/gthr-default.h:41, de / usr / lib / gcc / i686-pc-linux -gnu / 4.7.2 /../../../../ include / c ++ / 4.7.2 / i686-pc-linux-gnu / bits / gthr.h: 150, a partir de / usr / lib / gcc /i686-pc-linux-gnu/4.7.2/../../../../include/c++/4.7.2/ext/atomicity.h:34, de / usr / lib / gcc / i686 -pc-linux-gnu / 4.7.2 /../../../../ include / c ++ / 4.7.2 / bits / ios_base.h: 41, de / usr / lib / gcc / i686-pc -linux-gnu / 4.7.2 /../../../../ include / c ++ / 4.7.2 / ios: 43, de /usr/lib/gcc/i686-pc-linux-gnu/4.7 .2 /../../../../ include / c ++ / 4.7.2 / ostream: 40, de /usr/lib/gcc/i686-pc-linux-gnu/4.7.2/../ ../../../include/c++/4.7.2/iostream:40, de source.cpp: 1: time.h: 120: 8: note: timespec :: timespec () time.h: 120: 8: nota: candidato espera 0 argumentos, 2 fornecidos time.h: 120: 8: note: constexpr timespec :: timespec (timespec const &) time.h: 120: 8: note: candidato espera 1 argumento, 2 desde time.h: 120: 8: nota: constexpr timespec :: timespec (timespec &&) time.h: 120: 8: nota: o candidato espera 1 argumento, 2 forneceu