我的班上有一個常數struct timespec
成員。我該如何初始化它?C++恆定結構成員初始化
我得到的唯一一個瘋狂的想法是派生自己的timespec
並給它一個構造函數。
非常感謝!
#include <iostream>
class Foo
{
private:
const timespec bar;
public:
Foo (void) : bar (1 , 1)
{
}
};
int main() {
Foo foo;
return 0;
}
Compilation finished with errors: source.cpp: In constructor 'Foo::Foo()': source.cpp:9:36: error: no matching function for call to 'timespec::timespec(int, int)' source.cpp:9:36: note: candidates are: In file included from sched.h:34:0, from pthread.h:25, from /usr/lib/gcc/i686-pc-linux-gnu/4.7.2/../../../../include/c++/4.7.2/i686-pc-linux-gnu/bits/gthr-default.h:41, from /usr/lib/gcc/i686-pc-linux-gnu/4.7.2/../../../../include/c++/4.7.2/i686-pc-linux-gnu/bits/gthr.h:150, from /usr/lib/gcc/i686-pc-linux-gnu/4.7.2/../../../../include/c++/4.7.2/ext/atomicity.h:34, from /usr/lib/gcc/i686-pc-linux-gnu/4.7.2/../../../../include/c++/4.7.2/bits/ios_base.h:41, from /usr/lib/gcc/i686-pc-linux-gnu/4.7.2/../../../../include/c++/4.7.2/ios:43, from /usr/lib/gcc/i686-pc-linux-gnu/4.7.2/../../../../include/c++/4.7.2/ostream:40, from /usr/lib/gcc/i686-pc-linux-gnu/4.7.2/../../../../include/c++/4.7.2/iostream:40, from source.cpp:1: time.h:120:8: note: timespec::timespec() time.h:120:8: note: candidate expects 0 arguments, 2 provided time.h:120:8: note: constexpr timespec::timespec(const timespec&) time.h:120:8: note: candidate expects 1 argument, 2 provided time.h:120:8: note: constexpr timespec::timespec(timespec&&) time.h:120:8: note: candidate expects 1 argument, 2 provided
有你嘗試只是初始化它? –
當然,我做到了。我得到一個錯誤。編輯了這個問題。 – Kolyunya
我不認識的人,爲什麼你給我投票,但我找不到正確的語法... – Kolyunya