@@ -33,22 +33,22 @@ class HKU_API KData {
3333 KData (KData&&);
3434 KData& operator =(KData&&);
3535
36- size_t size () const ;
37- bool empty () const ;
36+ size_t size () const noexcept ;
37+ bool empty () const noexcept ;
3838
3939 bool operator ==(const KData&) const ;
4040 bool operator !=(const KData&) const ;
4141
4242 DatetimeList getDatetimeList () const ;
4343
4444 /* * 获取指定位置的KRecord,未作越界检查 */
45- const KRecord& getKRecord (size_t pos) const ;
45+ const KRecord& getKRecord (size_t pos) const noexcept ;
4646
4747 /* * 按日期查询KRecord */
48- const KRecord& getKRecord (Datetime datetime) const ;
48+ const KRecord& getKRecord (Datetime datetime) const noexcept ;
4949
5050 /* * 同getKRecord @see getKRecord */
51- const KRecord& operator [](size_t pos) const {
51+ const KRecord& operator [](size_t pos) const noexcept {
5252 return getKRecord (pos);
5353 }
5454
@@ -68,6 +68,8 @@ class HKU_API KData {
6868 */
6969 KData getKData (const Datetime& start, const Datetime& end) const ;
7070
71+ KData getKData (const KQuery& query) const ;
72+
7173 /* *
7274 * 获取相同时间范围内的其他类型K线数据,如日线下对应的分钟线数据
7375 * @param ktype
@@ -81,7 +83,7 @@ class HKU_API KData {
8183 * @param end 结束索引
8284 * @return KData
8385 */
84- KData getKData (int64_t start, int64_t end = Null<int64_t >()) const ;
86+ KData getSubKData (int64_t start, int64_t end = Null<int64_t >()) const ;
8587
8688 /* *
8789 * 特殊用途!谨慎!按当前K线范围,获取指定日期范围的其他类型的按日期查询的 Query 条件
@@ -99,7 +101,7 @@ class HKU_API KData {
99101 const KQuery::KType& ktype) const ;
100102
101103 /* * 按日期查询对应的索引位置,注:是 KData 中的位置,不是在 Stock 中原始K记录的位置 */
102- size_t getPos (const Datetime& datetime) const ;
104+ size_t getPos (const Datetime& datetime) const noexcept ;
103105
104106 /* * 按日期获取在原始 K 线记录中的位置 */
105107 size_t getPosInStock (Datetime datetime) const ;
@@ -272,15 +274,13 @@ inline KData::KData(KData&& x) : m_imp(std::move(x.m_imp)) {
272274}
273275
274276inline KData& KData::operator =(const KData& x) {
275- if (this == &x)
276- return *this ;
277+ HKU_IF_RETURN (this == &x, *this );
277278 m_imp = x.m_imp ;
278279 return *this ;
279280}
280281
281282inline KData& KData::operator =(KData&& x) {
282- if (this == &x)
283- return *this ;
283+ HKU_IF_RETURN (this == &x, *this );
284284 m_imp = std::move (x.m_imp );
285285 x.m_imp = get_null_kdata_imp ();
286286 return *this ;
@@ -290,24 +290,24 @@ inline DatetimeList KData::getDatetimeList() const {
290290 return m_imp->getDatetimeList ();
291291}
292292
293- inline const KRecord& KData::getKRecord (size_t pos) const {
293+ inline const KRecord& KData::getKRecord (size_t pos) const noexcept {
294294 return m_imp->getKRecord (pos); // 不会抛出异常
295295}
296296
297- inline const KRecord& KData::getKRecord (Datetime datetime) const {
297+ inline const KRecord& KData::getKRecord (Datetime datetime) const noexcept {
298298 size_t pos = getPos (datetime);
299299 return pos != Null<size_t >() ? getKRecord (pos) : KRecord::NullKRecord;
300300}
301301
302- inline size_t KData::getPos (const Datetime& datetime) const {
302+ inline size_t KData::getPos (const Datetime& datetime) const noexcept {
303303 return m_imp->getPos (datetime);
304304}
305305
306- inline size_t KData::size () const {
306+ inline size_t KData::size () const noexcept {
307307 return m_imp->size ();
308308}
309309
310- inline bool KData::empty () const {
310+ inline bool KData::empty () const noexcept {
311311 return m_imp->empty ();
312312}
313313
0 commit comments